【发布时间】:2022-01-05 17:06:41
【问题描述】:
我正在努力从谷歌云功能连接到我的数据库实例。使用我的休息客户端我得到了错误:
错误:连接 ENOENT /cloudsql/my-project:us-central1:my-data-lake at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1146:16) ---------- ---------- 在 Protocol._enqueue (/Users/me/Code/dietstats/node_modules/mysql/lib/protocol/Protocol.js:144:48) 在 Protocol.handshake (/Users/me/代码/dietstats/node_modules/mysql/lib/protocol/Protocol.js:51:23) 在 PoolConnection.connect (/Users/me/Code/dietstats/node_modules/mysql/lib/Connection.js:116:18) 在 Pool .getConnection (/Users/me/Code/dietstats/node_modules/mysql/lib/Pool.js:48:16) 在/Users/me/Code/dietstats/node_modules/typeorm/driver/mysql/MysqlDriver.js:863: 18 在 MysqlDriver.createPool (/Users/me/Code/dietstats/node_modules/typeorm/driver/mysql/MysqlDriver.js:860:16) 在 MysqlDriver 的 new Promise ()。 (/Users/me/Code/dietstats/node_modules/typeorm/driver/mysql/MysqlDriver.js:288:51)在步骤(/Users/me/Code/dietstats/node_modules/tslib/tslib.js:143:27)在 Object.next (/Users/me/Code/dietstats/node_modules/tslib/tslib.js:124:57)
在我的云记录器中,我仅在尝试连接时看到以下消息:
“2022-01-05T16:56:21.312241Z 44943 [警告] 用户 'mysql.session'@'localhost' 被分配访问权限 0x8000,但只允许拥有 0x0。”
“2022-01-05T16:56:21.312200Z 44943 [警告] mysql.user 中的条目 'root'@'localhost' 被忽略,因为它与 mysql.system_user 中的条目重复”
这很有趣,因为我什至没有使用这些用户进行连接。
那么,对于这些神秘的消息,我该如何解决我的连接问题?
【问题讨论】:
-
你可以使用 mysql 客户端从 VM 连接吗?您是如何在 Cloud SQL 实例上设置连接的?私有IP?公共IP?首先将 Cloud Functions 排除在外,以确保您可以访问您的实例。
-
在等待上述 cmets 中请求的信息时,请查看以下可能对您有所帮助的文档:cloud.google.com/sql/docs/mysql/error-messages、cloud.google.com/sql/docs/mysql/diagnose-issues。
-
@GabeWeiss 对于 DX 审查,请参阅下面的答案。我有一些东西在本地和 gCloud 中工作,但我很挣扎,因为我不知道云功能级权限以及这些权限如何在连接到其他 Google 服务时生效。
标签: mysql google-cloud-platform google-cloud-functions typeorm