我在這裏看到了其他同一問題的帖子,但是沒有一個答案對我有幫助。我有一個谷歌SQLCloud第二代數據庫,我試圖讓我的Go Appengine應用程序建立連接。 我使用go-sql-driver/mysql使用Go on AppEngine連接到Google SQL Cloud第二代
起初,我試圖用我的第一代只是路過的項目和實例名作爲參數,使用相同的方式連接:
sql.Open("mysql", "[email protected](project:instance)/database"
然後我從雲發現控制檯也從this post該地區也需要讓我的連接參數現在看起來像:
sql.Open("mysql", "[email protected](project:uscentral1:instance)/database"
,並與密碼
sql.Open("mysql", "root:[email protected](project:uscentral1:instance)/database"
仍然沒有工作
我最後的嘗試是使用SSL連接的使用從驅動程序文件提供的代碼上this post描述:
rootCertPool := x509.NewCertPool()
pem, err := ioutil.ReadFile("/path/ca-cert.pem")
if err != nil {
log.Fatal(err)
}
if ok := rootCertPool.AppendCertsFromPEM(pem); !ok {
log.Fatal("Failed to append PEM.")
}
clientCert := make([]tls.Certificate, 0, 1)
certs, err := tls.LoadX509KeyPair("/path/client-cert.pem", "/path/client-key.pem")
if err != nil {
log.Fatal(err)
}
clientCert = append(clientCert, certs)
mysql.RegisterTLSConfig("custom", &tls.Config{
RootCAs: rootCertPool,
Certificates: clientCert,
})
sql.Open("mysql","root:[email protected](project:uscentral1:instance)/database?tls=custom")
也沒有運氣。
在這一點上,我只是想盡辦法解決問題。有沒有人做過與大多數人所做的不同之處?此時,我不確定問題是否出現在我的代碼中,驅動程序或CloudSQL數據庫中的某些配置。
謝謝@Vadim。請看我上面的答案。 –