从App Engine连接到CloudSQL

时间:2016-05-01 22:26:48

标签: mysql google-app-engine go google-cloud-platform google-cloud-sql

我在App Engine上运行Go应用程序,并运行第一代CloudSQL实例。我可以使用TCP连接从dev连接到SQL服务器,指定SQL服务器的IP。但我无法使用CloudSQL驱动程序从已部署的实例进行连接。

示例代码

import (
    "database/sql"
    _ "github.com/ziutek/mymysql/godrv"
    _ "google.golang.org/appengine/cloudsql"
)

if (dev) {
    sql.Open("mymysql", "tcp:1.2.3.4:3306*database/user/pass")
} else {
    sql.Open("mymysql", "cloudsql:project-id:instance-name*database/user/pass")
}

(是的,我正在用databaseuserpassproject-idinstance-name替换我的真实代码中的正确值< / p>

在本地运行时(通过goapp serve)我可以连接并查询数据库 - 一切都很好。 但是,从部署的实例连接时,我收到以下错误:

  

从MySQL服务器收到#1045错误:“访问被拒绝用户'readonly'@'localhost'(使用密码:是)”

我确保我的App Engine实例已获得授权(SQL&gt;实例&gt;访问控制&gt;授权),并且我在两种情况下都使用相同的用户。

我在Diagnosing Issues with Cloud SQL Instances页面上发现了类似我的错误消息的内容,但建议的解决方案是在启用SSL时连接SSL(我没有为服务器启用SSL)。

  

如果收到如下错误消息:

ERROR 1045 (28000): Access denied for user 'root'@'1.2.3.4' (using password: YES)
     

连接时,请确认您使用的是正确的   密码,如果实例需要,您通过SSL连接   它

看到这给我带来了太多麻烦,我还尝试通过App Engine实例的IP地址进行连接,但套接字连接被拒绝。

0 个答案:

没有答案