【发布时间】:2016-11-05 22:54:02
【问题描述】:
我想从我的 GAE 应用程序连接到我的 Google Cloud MySQL 实例。我正在使用github.com/go-sql-driver/mysql 驱动程序,并按照tutorial 中指定的步骤进行操作。显然我可以毫无错误地连接到数据库,但是当我想发出请求时,我得到了driver: bad connection 和packets.go:33: unexpected EOF。我授权我的本地 IP 地址和 GAE 应用程序访问我的数据库,我可以从我的本地计算机和 mysql 客户端毫无问题地连接到它。我已经尝试在标准环境中设置我的应用程序并遵循here 的建议,但它也不起作用。
这是我用来连接数据库的 Go 代码:
host := os.Getenv("DB_HOST")
user := os.Getenv("DB_USER")
pwd := os.Getenv("DB_PWD")
connectionInfo := fmt.Sprintf("%v:%v@tcp(%v:3306)/mobile_data?parseTime=true", user, pwd, host)
db, err := sql.Open("mysql", connectionInfo)
这是我的 app.yaml 文件:
runtime: go
vm: true
env_variables:
"DB_HOST": "[Google Cloud MySQL Instance IPv4]"
"DB_USER": "[User]"
"DB_PWD": "[Password]"
非常感谢任何提示或建议!
【问题讨论】:
-
你是连接第一代还是第二代云sql实例?如果是二代,应该使用云sql代理:cloud.google.com/sql/docs/access-control#instanceaccess
-
我连接了第一代实例。啊,在您发给我的链接中,他们声明不支持从应用引擎柔性环境访问第一代实例。感谢您的链接!
标签: mysql google-app-engine go google-cloud-platform google-cloud-sql