Mengapa sambungan ke Pangkalan Data Autonomi Oracle dari golang gagal?

WBOY
Lepaskan: 2024-02-09 12:40:19
ke hadapan
459 orang telah melayarinya

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.

Isi soalan

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()
Salin selepas log masuk

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?

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 '='
Salin selepas log masuk

Penyelesaian

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())
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!