mysql-无法从Google App Engine使用SSL Golang连接到Google Cloud SQL
作者:互联网
Google表示您可以使用Golang和go-sql-driver连接到Google Cloud SQL,如下所示:
import "database/sql"
import _ "github.com/go-sql-driver/mysql"
db, err := sql.Open("mysql", "user@cloudsql(project-id:instance-name)/dbname")
参考:https://cloud.google.com/appengine/docs/go/cloud-sql/reference
…但是,这(对我而言)会生成x509证书错误:
x509: certificate is valid for projectName:instanceName, not
projectName
我不知道如何解决这个问题.根据Google自己的文档,在连接字符串中再次添加实例名称(即使已经存在)也无济于事.
有没有人设法做到这一点?怎么了?
解决方法:
您正在使用SSL连接吗?该错误消息表明,除了在sql.Open()中指定project-id:instance-name之外,还必须在使用mysql驱动程序注册自定义TLSConfig时设置ServerName属性.
例如使用TLS设置from the docs,但在对RegisterTLSConfig的调用中添加ServerName:
mysql.RegisterTLSConfig("custom", &tls.Config{
RootCAs: rootCertPool,
Certificates: clientCert,
ServerName: "projectName:instanceName",
})
然后附加?tls = nameOfYourCustomTLSConfig
db, err := sql.Open("mysql", "user@cloudsql(project-id:instance-name)/dbname?tls=custom")
标签:google-cloud-sql,go,google-app-engine,mysql 来源: https://codeday.me/bug/20191027/1941298.html