Rumah >pembangunan bahagian belakang >Golang >Mengapa sambungan ke Pangkalan Data Autonomi Oracle dari golang gagal?
editor php Baicao hadir untuk menjawab soalan biasa untuk semua orang: "Mengapa sambungan ke pangkalan data Oracle dari golang gagal?" . Ini mungkin disebabkan oleh pelbagai sebab, seperti salah konfigurasi pangkalan data, isu sambungan rangkaian atau ketidakserasian pemandu. Artikel ini akan menganalisis kemungkinan punca secara terperinci dan menyediakan penyelesaian untuk membantu pembaca menyelesaikan masalah ini dan menjadikan proses penyambungan ke pangkalan data Oracle lebih lancar.
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()
Saya mencipta pangkalan data autonomi, saya cuba menyambung dengan kod di atas dalam golang, tetapi tidak dapat menyambung, ralat berikut berlaku, bagaimana untuk menyambung, saya tidak dapat mencari manual terperinci, bolehkah anda membantu saya? 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 '='
Saya pengguna baharu oracle dan golang, semuanya baharu dan saya menghadapi masalah mencari dokumentasi untuk menyambung oracle dan golang. Ada manual tapi saya tak berapa faham.
Jika anda menyiarkan soalan pada stackoverflow, jawapannya hanyalah pautan ke manual. Bagi pemula, memang susah nak alami persekitaran baru
Saya akhirnya menemui penyelesaiannya, kod saya adalah seperti berikut. Walaupun anda tidak boleh membaca kod itu, adalah baik untuk memikirkannya satu per satu sambil anda melihat contoh.
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()) }
Kod di atas tidak memerlukan dompet untuk akses tls. Saya juga akan memuat naik cara mengaksesnya melalui dompet di bawah untuk pemula yang memerlukannya.
Atas ialah kandungan terperinci Mengapa sambungan ke Pangkalan Data Autonomi Oracle dari golang gagal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!