Maison >développement back-end >Golang >Pourquoi la connexion à Oracle Autonomous Database depuis Golang échoue-t-elle ?
L'éditeur php Baicao est là pour répondre à une question commune à tout le monde : "Pourquoi la connexion à la base de données Oracle depuis Golang échoue-t-elle Lorsque vous utilisez Golang pour vous connecter à la base de données Oracle, vous rencontrerez parfois le problème d'un échec de connexion ?" . Cela peut être dû à diverses raisons, telles qu'une mauvaise configuration de la base de données, des problèmes de connexion réseau ou une incompatibilité de pilote. Cet article analysera en détail les causes possibles et fournira des solutions pour aider les lecteurs à résoudre ce problème et à rendre le processus de connexion à la base de données Oracle plus fluide.
dsn := ` user=admin, password=temp1!a, (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.ap-seoul-1.oraclecloud.com))(connect_data=(service_name=gee9edfb93f3cf6_redglqweyxqefhhf_high.adb.oraclecloud.com))(security=(ssl_server_cert_dn="cn=adb.ap-seoul-1.oraclecloud.com, ou=oracle adb seoul, o=oracle corporation, l=redwood city, st=california, c=us"))) ` db, err := sql.open("godror", dsn) if err != nil { fmt.println(err) return } defer db.close()
J'ai créé une base de données autonome, j'ai essayé de me connecter avec le code ci-dessus dans golang, mais je n'ai pas pu me connecter, l'erreur suivante s'est produite, comment me connecter, je ne trouve pas de manuel détaillé, pouvez-vous m'aider ? p>
go run main.go parsing parameters "user=ADMIN,\n\tpassword=temp1!a,\n\t(description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.ap-seoul-1.oraclecloud.com))(connect_data=(service_name=gee9edfb93f3cf6_redglqweyxqefhhf_high.adb.oraclecloud.com))(security=(ssl_server_cert_dn=\"CN=adb.ap-seoul-1.oraclecloud.com, OU=Oracle ADB SEOUL, O=Oracle Corporation, L=Redwood City, ST=California, C=US\")))": logfmt syntax error at pos 44 on line 3: unexpected '='
Je suis un nouvel utilisateur d'oracle et de golang, tout est nouveau et j'ai du mal à trouver la documentation pour connecter oracle et golang. Il existe un manuel mais je ne le comprends pas bien.
Si vous postez une question sur stackoverflow, la réponse n'est qu'un lien vers le manuel. Pour les débutants, il est vraiment difficile de découvrir un nouvel environnement
J'ai enfin trouvé la solution, mon code est le suivant. Même si vous ne savez pas lire le code, il est bon d'y réfléchir un par un en regardant les exemples.
package main import ( "database/sql" "fmt" go_ora "github.com/sijms/go-ora/v2" ) type DbInfo struct { Username string Password string } func main() { serverInfo := DbInfo{ Username: "databaseUser", Password: "databaseUserPassword", } urlOptions := map[string]string{ "TRACE FILE": "trace.log", "SSL VERIFY": "FALSE", } connectString := "(description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.ap-seoul-1.oraclecloud.com))(connect_data=(service_name=gvsd1dfc9c3cdf6_racc7y8cxsvb16f0z_medium.adb.oraclecloud.com))(security=(ssl_server_dn_match=yes)))" db, err := sql.Open("oracle", go_ora.BuildJDBC(serverInfo.Username, serverInfo.Password, connectString, urlOptions)) if err != nil { panic(err.Error()) } defer db.Close() r, err := db.Exec(`create table users ( nickname varchar(20) )`) if err != nil { panic(err.Error()) } fmt.Println(r.LastInsertId()) }
Le code ci-dessus ne nécessite pas de portefeuille pour l'accès tls. Je téléchargerai également comment y accéder via le portefeuille ci-dessous pour les débutants qui en ont besoin.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!