请与应用程序引擎/云SQL团队一起投票支持此问题:https://code.google.com/p/googleappengine/issues/detail?id=11898
我正在使用Go on App Engine访问Google Cloud SQLhttps://github.com/go-sql-driver/mysql作为我的司机。当我添加一些交易时,我得到了这个错误:
Cloud SQL connection error 2
在谷歌上搜索不会返回任何结果。这是什么意思?我在尝试启动事务时出错。
我的代码大部分时间都能工作,只是间歇性地失败,所以我确信这不是我的代码或SQL语句。
更新:
- 重新启动数据库似乎没有什么区别
- 我尝试使用备用MySQL驱动程序
github.com/ziutek/mymysql
,得到了完全相同的结果 - 我还消除了作为问题根源的交易。我在使用带有单个联接的索引运行一个简单查询时遇到了一个错误,返回了1行
- 这种情况只发生在少数并发查询中
我在使用Go on App Engine with Cloud SQL时遇到了类似的问题,这些问题似乎与创建过多到cloudsql实例的连接有关。我修改了代码,在初始化期间创建了一个到数据库的单一连接,我在整个程序中重复使用了这个连接,并且似乎可以工作,类似于这里推荐的内容。
我遇到了同样的问题。它突然出现了。通过GAE重新启动数据库帮助了大约半个小时,但随后问题再次出现
我已经更新了我的驱动程序,问题似乎已经消失:
cd $GOPATH/src/github.com/go-sql-driver/mysql/
git pull
编辑:在那之后,这个问题再次出现,但这次我认为是由于服务器创建了大量事务,而在发生错误时没有将其回滚。因此,产生了许多未完成的事务,导致了死锁。有一段时间出现了"超时"错误,然后又出现了"云SQL连接错误2"。因此,另一个建议是,在你开始犯错误之前,先看看会发生什么。这可能只是其他事情的症状。