Heim > Backend-Entwicklung > Golang > Warum schlägt die Verbindung zu Oracle Autonomous Database von Golang aus fehl?

Warum schlägt die Verbindung zu Oracle Autonomous Database von Golang aus fehl?

WBOY
Freigeben: 2024-02-09 12:40:19
nach vorne
498 Leute haben es durchsucht

Warum schlägt die Verbindung zu Oracle Autonomous Database von Golang aus fehl?

php-Editor Baicao ist hier, um eine häufig gestellte Frage zu beantworten: „Warum schlägt die Verbindung zur Oracle-Datenbank von Golang fehl?“ Wenn Sie Golang zum Herstellen einer Verbindung zur Oracle-Datenbank verwenden, tritt manchmal das Problem eines Verbindungsfehlers auf . Dies kann verschiedene Gründe haben, z. B. eine Fehlkonfiguration der Datenbank, Probleme mit der Netzwerkverbindung oder Treiberinkompatibilität. In diesem Artikel werden die möglichen Ursachen im Detail analysiert und Lösungen bereitgestellt, die den Lesern helfen, dieses Problem zu lösen und den Prozess der Verbindung mit der Oracle-Datenbank reibungsloser zu gestalten.

Frageninhalt

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()
Nach dem Login kopieren

Ich habe eine autonome Datenbank erstellt, ich habe versucht, eine Verbindung mit dem obigen Code in Golang herzustellen, konnte aber keine Verbindung herstellen. Der folgende Fehler ist aufgetreten. Wie wird eine Verbindung hergestellt? Ich kann kein detailliertes Handbuch finden. Können Sie mir helfen?

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 '='
Nach dem Login kopieren

Lösung

Ich bin ein neuer Benutzer von Oracle und Golang, alles ist neu und ich habe Probleme, die Dokumentation zum Verbinden von Oracle und Golang zu finden. Es gibt ein Handbuch, aber ich verstehe es nicht ganz.

Wenn Sie eine Frage zu Stackoverflow posten, ist die Antwort nur ein Link zum Handbuch. Für Anfänger ist es wirklich schwierig, eine neue Umgebung kennenzulernen

Endlich habe ich die Lösung gefunden, mein Code lautet wie folgt. Auch wenn Sie den Code nicht lesen können, ist es gut, beim Betrachten der Beispiele einzeln darüber nachzudenken.

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())
}
Nach dem Login kopieren

Der obige Code erfordert kein Wallet für den TLS-Zugriff. Ich werde unten auch hochladen, wie Anfänger, die es benötigen, über das Wallet darauf zugreifen können.

Das obige ist der detaillierte Inhalt vonWarum schlägt die Verbindung zu Oracle Autonomous Database von Golang aus fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage