使用Go 從App Engine 連接到Cloud SQL
Google 的文件建議使用以下程式碼使用Go 連線到Cloud SQL SQL,go-Cloud SQL -driver:
import "database/sql" import _ "github.com/go-sql-driver/mysql" db, err := sql.Open("mysql", "user@cloudsql(project-id:instance-name)/dbname")
但是,這可能會導致x509 憑證錯誤,指示指定項目名稱和實例名稱的憑證無效。使用 SSL 連線時會出現此問題。要解決此問題,除了在 sql.Open() 中指定 project-id:instance-name 之外,還必須在向 mysql 驅動程式註冊自訂 TLSConfig 時設定 ServerName 屬性。
下面是一個範例設定TLS 配置:
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")
透過執行下列步驟,您可以使用以下指令成功連線到Cloud SQL:來自Google App Engine 的SSL。
以上是如何使用 Go 從 App Engine 連接到帶有 SSL 的 Cloud SQL 並解決憑證錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!