【发布时间】:2014-02-17 13:17:39
【问题描述】:
我在 App Engine 上的 Go 中使用 go-sql-driver/mysql 驱动程序连接到 Cloud SQL 实例,如下所示:
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
db, dbErr := sql.Open("mysql", "root@cloudsql(project:instance)/database"
...
pingErr := db.Ping()
但我在pingErr 中收到“permission denied”。
当然,我已经在 Cloud SQL 控制台的“访问控制”per the docs 下检查了我的应用是否已获得授权。我还尝试添加具有特权的 MySQL 用户并使用user:password 代替root,甚至不指定用户。
我做错了什么?
...
更新:
根据@Kyle 的建议,我尝试了一个备用驱动程序ziutek/mymysql,它适用于以下代码:
import (
"database/sql"
_ "github.com/ziutek/mymysql/godrv"
_ "github.com/ziutek/mymysql/mysql"
_ "github.com/ziutek/mymysql/native"
)
db, dbErr := sql.Open("mymysql", "cloudsql:project:instance*database/user/password"
如果我能找出问题所在,是时候在 go-sql-driver/mysql 上提出拉取请求了!任何见解或经验都值得赞赏!
【问题讨论】:
-
我还应该注意,我能够以 root 和我创建的用户身份连接 mysql CLI,所以我认为这不是数据库设置问题。
标签: google-app-engine go google-cloud-sql