我有一个在 App Engine 上运行的 sails js 应用程序,以及一个 App Engine 应该与之通信的 Cloud SQL 实例。我在 Sails v1.0 应用程序中使用以下配置:
adapter: 'sails-mysql',
socketPath: `/cloudsql/${process.env.INSTANCE_CONNECTION_NAME}`,
user: process.env.SQL_USER,
password: process.env.SQL_PASSWORD,
database: 'parsley'
所有 env 变量都正确传递,但我仍然收到此错误:
name=AdapterError, adapterMethodName=create, modelIdentity=admin, name=Exception, code=badConnection, exit=badConnection, errno=ECONNREFUSED, code=ECONNREFUSED
如果您使用 Cloud Shell 和 Cloud SQL 代理测试代码:
- 在 Cloud Shell 选项卡中启动云 SQL 代理,并使该选项卡保持打开状态
- 打开一个新标签页。 尝试从 App Engine 连接到 Cloud SQL。
如下所述:
您的应用程序与具有标准的代理通信 数据库使用的数据库协议。代理使用安全 隧道与在 服务器。
如果不让云 SQL 代理在选项卡中运行,则不会创建安全隧道,并且无法访问云 SQL。
还有其他问题可能导致此问题,但根据我"谷歌搜索"错误的研究,这似乎是最常见的。