Cor*_*ton 0 google-app-engine go google-cloud-sql
爱堆栈,我完全沮丧的第一篇文章.谢谢你的评论!
我已经复制了这个基本的GO程序来连接我的MySQL实例.
我构建并运行它.去构建mysqlexample.go ./mysqlexample
我无法实现成功的连接.您可以看到我尝试过的所有各种连接字符串,右边是我得到的响应.
我可以使用mysql admin从我的本地Windows机器连接.
救命?
package main
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
"log"
)
func main() {
const dbIP = "104.xxx.xx.x"
const dbInstanceName = "esp-1-dev:us-central1:espdev"
const dbName = "servpro"
const dbUserName = "root"
const dbPassword = "xxxxxxx"
const dbOpenString = dbUserName + ":" + dbPassword + "@/" + dbInstanceName + "/" + dbName //GETS RESPONSE default addr for network 'AppEngine:Zone:Project' unknown
//const dbOpenString = dbUserName + "@cloudsql(" + dbInstanceName + ")/" + dbName //GETS RESPONSE dial cloudsql: unknown network cloudsql
//const dbOpenString = dbUserName + "@/" //+ "?parseTime=true&loc=UTC" //GETS RESPONSE getsockopt: connection refused
//const dbOpenString = dbUserName + ":" + dbPassword + "@tcp(" + dbIP + ":3306)/" + dbName //GETS RESPONSE dial tcp 104.xxx.xxx.x:3306: getsockopt: connection timed out
// Got this from stack overflow. GoDocs are not updated to reflect 2nd Gen databases.
// http://stackoverflow.com/questions/38890022/tls-requested-but-server-does-not-support-tls-error-with-google-cloud-sql-2nd
//user:password@cloudsql(copiedPastedInstanceConnectionName)/d??atabaseName?charset=??charset&collation=co??llation&tls=tlsConfi??gName&parseTime=true
//First Generation Connection String
//username:password@cloudsql(appID:CloudSQLInstance)/databasename?parseTime=true&loc=UTC
db, err := sql.Open("mysql", dbOpenString);
defer db.Close()
log.Println("Attempting Ping of database....")
err = db.Ping()
if err != nil {
log.Println("db.Ping() failed: " + dbOpenString)
log.Println(err)
} else {
log.Println("Success!")
}
}
Run Code Online (Sandbox Code Playgroud)
Vad*_*dim 11
以下是正确的连接字符串,但它们根据您连接的App Engine版本而有所不同.
App Engine标准:
user:password@cloudsql(INSTANCE_CONNECTION_NAME)/dbname
Run Code Online (Sandbox Code Playgroud)
App Engine灵活:
user:password@unix(/cloudsql/INSTANCE_CONNECTION_NAME)/dbname
Run Code Online (Sandbox Code Playgroud)
如果您要迁移到第二代 Go App Engine (Golang 1.11),请将连接字符串从:
user:password@cloudsql(instanceID)/db
到
user:password@unix(/cloudsql/instanceID)/db
| 归档时间: |
|
| 查看次数: |
1895 次 |
| 最近记录: |