谷歌应用程序引擎golang,驱动程序:连接不好 [英] google app engine golang, driver: bad connection
问题描述
我有一些在本地GAE服务器上工作的代码,但是一旦我将它发布到GAE,它就会抛出错误driver:bad connection。
下面的代码生成一个新的* sql.DB:
func NewDb()(* sql.DB,error){
cloud := os.Getenv(dbcloud)
local:= os.Getenv(dblocal)
如果appengine.IsDevAppServer(){
返回sql.Open(mysql,根@ tcp(+ local +:3306)/ dbo)
}
返回sql.Open(mysql,root @ cloudsql(+ cloud +)/ dbo)
}
在我的app.yaml中,我有以下内容:
env_variables:
dbcloud:'projectid:instancename'
dblocal:'xxx.xxx.xxx.xxx'
它似乎正确地返回一个新的* sql.DB,但是一旦我开始使用预准备语句就是当事情开始中断时。
db,err:= NewDb()// err is nil
stmt,err:= db.Prepare(INSERT INTO dbo.Users(Id)VALUES(?))// err是驱动程序:连接不好
我一直在为此奋斗了一个小时,而且我可能正在做一些事情非常愚蠢的任何帮助将不胜感激!
我最终需要更改我的dbcloud变量,以包含SQL服务器的区域改变它:
'projectid:instancename'
收件人:
'projectid:regionname:instancename'
不知道为什么我需要这样做,因为它不在 https://github.com/go-sql-driver/mysql ,但现在都可以使用!
I have some code that is working on the local GAE server but once I publish it to GAE it throws the error "driver: bad connection".
Below code generates a new *sql.DB:
func NewDb() (*sql.DB, error) {
cloud := os.Getenv("dbcloud")
local := os.Getenv("dblocal")
if appengine.IsDevAppServer() {
return sql.Open("mysql", "root@tcp("+local+":3306)/dbo")
}
return sql.Open("mysql", "root@cloudsql("+cloud+")/dbo")
}
In my app.yaml I have the following:
env_variables:
dbcloud: 'projectid:instancename'
dblocal: 'xxx.xxx.xxx.xxx'
It seems to return a new *sql.DB correctly but once I start using prepared statements is when things start to break.
db, err := NewDb() // err is nil
stmt, err := db.Prepare("INSERT INTO dbo.Users (Id) VALUES (?)") // err is driver: bad connection
I've been fighting with this for an hour now and i'm probably doing something very stupid any help would be appreciated!
I ended up needing to change my dbcloud variable to include the region of the SQL server changing it from:
'projectid:instancename'
To:
'projectid:regionname:instancename'
No idea why I need to do this as it's not in the docs of https://github.com/go-sql-driver/mysql but is all working now!
这篇关于谷歌应用程序引擎golang,驱动程序:连接不好的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!