首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AppEngine和Cloud连接错误

AppEngine和Cloud连接错误
EN

Stack Overflow用户
提问于 2018-07-07 11:37:49
回答 1查看 1.6K关注 0票数 3

我正在使用Google的和Cloud。它们都在同一个项目中,这应该足以建立到SQL的连接。

如果App应用程序与Cloud实例位于同一个项目中,则可以跳过本节并开始设置本地环境。否则,继续下一步。

如果我在我的Mac上旋转Node.js,在本地-它可以很容易地连接到Cloud,因为我的IP地址是白色的。

一旦我将它部署到App,它就无法工作,因为它无法连接到DB。我正在为Cloud使用公共IP地址。

我读了很多教程,也读过Google提供的文档。我可以看到socketPath有一些东西。

但我不想用Knex。我想使用标准的mysql。

我一直在尝试以下几点:

代码语言:javascript
复制
var db_config = {
  host: 'PUBLIC IP',
  user: 'root',
  password: 'PASSWORD!',
  database: 'DB_NAME',
  socketPath: '/cloudsql/CONNECTION_NAME'
};

错误:

代码语言:javascript
复制
error when connecting to db: { Error: connect ENOENT /cloudsql/CONNECTION_NAME-209415:europe-west1:DB_NAME
    at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1174:14)
    --------------------
    at Protocol._enqueue (/Users/root/API/Node-API/node_modules/mysql/lib/protocol/Protocol.js:145:48)
    at Protocol.handshake (/Users/root/API/Node-API/node_modules/mysql/lib/protocol/Protocol.js:52:23)
    at Connection.connect (/Users/root/API/Node-API/node_modules/mysql/lib/Connection.js:130:18)
    at handleDisconnect (/Users/root/API/Node-API/src/App.ts:44:14)
    at Object.<anonymous> (/Users/root/API/Node-API/src/App.ts:60:1)
    at Module._compile (internal/modules/cjs/loader.js:654:30)
    at Module.m._compile (/Users/root/API/Node-API/node_modules/ts-node/src/index.ts:435:23)
    at Module._extensions..js (internal/modules/cjs/loader.js:665:10)
    at Object.require.extensions.(anonymous function) [as .ts] (/Users/root/API/Node-API/node_modules/ts-node/src/index.ts:438:12)
    at Module.load (internal/modules/cjs/loader.js:566:32)
  errno: 'ENOENT',
  code: 'ENOENT',
  syscall: 'connect',
  address: '/cloudsql/CONNECTION_NAME-209415:europe-west1:DB_NAME',
  fatal: true }

有什么建议,怎么解决?如果我将socketPath从db_config中移除,那么它在本地工作--但在部署它时不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-08 08:22:15

好的,当应用localhost和socketPath时,似乎会导致错误。没有Knex,一切都很好,下面的db_config用于mysql

代码语言:javascript
复制
db_config = {
     user: 'root',
     password: 'PASSWORD!',
     database: 'DB_NAME',
     socketPath: '/cloudsql/CONNECTION_NAME'
};

最后,请记住将cloud_sql_instance添加到app.yaml

代码语言:javascript
复制
beta_settings:
    cloud_sql_instances: CONNECTION_NAME
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51222821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档