我在node js应用程序中使用google app engine和cloud sql(我的sql2nd gen示例),我遇到了问题。
我使用云代理在本地连接很好,但一旦部署它就失败了。
我正在使用sequelize连接到cloudsql。
我有正确的密码/用户名/示例连接名称。我已经启用了api,否则我将无法从代理连接。
在我的“app.yaml”中,我有正确的“beta\u settings”标签和正确的“cloud\u sql\u instances”值。
来自云sql的消息:
`{insertId: "s=7560d77466cb46cebc3933acc1c41082;i=1a5ff5;b=30867f100f0d483ea84a5718c3948aed;m=886b8bfcbb;t=578fd8d7ad54f;x=a821eba2c35efe29-0@a1"
logName: "projects/[CORRECT PROJECT]/logs/cloudsql.googleapis.com%2Fmysql.err"
receiveTimestamp: "2018-10-24T18:21:25.190291090Z"
resource: {
labels: {
database_id: "[CORRECT DB ID]"
project_id: "[CORRECT PROJECT ID]"
region: "us-central"
}
type: "cloudsql_database"
}
severity: "ERROR"
textPayload: "2018-10-24T18:21:19.249532Z 53509 [Note] Access denied for user 'root'@'cloudsqlproxy~66.85.23.1' (using password: NO)"
timestamp: "2018-10-24T18:21:19.249743Z" }`
来自应用程序引擎(express,sequelize)的消息:
`Error: connect ECONNREFUSED 127.0.0.1:3306 at TCPConnectWrap.afterConnect [as oncomplete]`
类似的问题似乎已经被问过无数次了,我已经读了10多个问题和答案,我仍然没有正确的答案。
我能得到一些帮助吗?
谢谢您。
1条答案
按热度按时间oknwwptz1#
我知道这很老了,但我的nodejs应用程序连接到cloudsqlpostgres时也遇到了同样的问题。对appengine示例的一点挖掘最终显示,虽然docs显示127.0.0.1作为主机,但它实际上运行的是cloudsql代理docker映像—因此,虽然示例本身是127.0.0.1,但我的数据库主机名实际上需要是app容器中的“cloudsql”。
尝试连接到cloudsql:3306 and 看看能不能用!