ここでは同じ問題で他の投稿を見たことがありますが、私の場合は答えが得られません。 Go Appengineアプリとの接続を確立しようとしているGoogle SQLCloud 2世代データベースがあります。 私は、私は第一世代がちょうどパラメータとしてプロジェクト名およびインスタンス名を渡すことで使用したのと同じ方法で接続しようとした最初go-sql-driver/mysqlGoogle SQL Cloudに接続してくださいAppEngineを使用して2番目の世代
を使用しています:
sql.Open("mysql", "[email protected](project:instance)/database"
は、それから私は、クラウドから気づきましたコンソールとも私の接続パラメータは、現在のように見えるように、地域も必要であることをthis postから:
sql.Open("mysql", "[email protected](project:uscentral1:instance)/database"
ともパスワード
とまた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")
運:ドライバのドキュメントから提供されたコードを使用してthis postに説明するように
sql.Open("mysql", "root:[email protected](project:uscentral1:instance)/database"
まだ働いていない
私の最後の試みは、SSLを使用して接続することでした。
この時点では、問題の可能性のあるアイディアが不足しています。誰かがそれを稼働させるためにほとんどの人が何をしたのと変わったことはありますか?この時点で、問題が自分のコードにあるのか、ドライバかCloudSQLデータベースの何らかの設定であるかどうかは分かりません。
ありがとう@Vadim。上記の私の答えを見てください。 –