繁体   English   中英

使用Node.js连接到Google Cloud上的MySQL数据库(错误:连接ENOENT)

[英]Connecting to MySQL database on Google Cloud with Node.js (Error: connect ENOENT)

我正在尝试通过与该数据库托管在同一项目中的应用程序连接到Google Cloud上的MySQL数据库。 该应用程序是用node.js编写的。

这是我的代码:

    mysql = require('mysql');
    var connection = mysql.createConnection({
    user: "root",
    password: "{root password}",
    database: "{database}",
    socketPath: "{project-id}:europe-west1:{database-name}",
    multipleStatements: true
});

该应用程序已成功部署,但是每当我访问使用MySQL的页面时,都会出现此错误:

    { Error: connect ENOENT {project-id}:europe-west1:{database-name}      at Object._errnoException (util.js:1022:11)      at _exceptionWithHostPort (util.js:1044:20)      at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1198:14)
2018-05-20 11:24:12 default[20180520t111014]      --------------------
2018-05-20 11:24:12 default[20180520t111014]      at Protocol._enqueue (/app/node_modules/mysql/lib/protocol/Protocol.js:145:48)
2018-05-20 11:24:12 default[20180520t111014]      at Protocol.handshake (/app/node_modules/mysql/lib/protocol/Protocol.js:52:23)
2018-05-20 11:24:12 default[20180520t111014]      at Connection.connect (/app/node_modules/mysql/lib/Connection.js:130:18)
2018-05-20 11:24:12 default[20180520t111014]      at Object.<anonymous> (/app/app.js:54:12)
2018-05-20 11:24:12 default[20180520t111014]      at Module._compile (module.js:652:30)
2018-05-20 11:24:12 default[20180520t111014]      at Object.Module._extensions..js (module.js:663:10)
2018-05-20 11:24:12 default[20180520t111014]      at Module.load (module.js:565:32)
2018-05-20 11:24:12 default[20180520t111014]      at tryModuleLoad (module.js:505:12)
2018-05-20 11:24:12 default[20180520t111014]      at Function.Module._load (module.js:497:3)
2018-05-20 11:24:12 default[20180520t111014]      at Function.Module.runMain (module.js:693:10)
2018-05-20 11:24:12 default[20180520t111014]    code: 'ENOENT',
2018-05-20 11:24:12 default[20180520t111014]    syscall: 'connect',
2018-05-20 11:24:12 default[20180520t111014]    address: '{project-id}:europe-west1:{database-name}',
2018-05-20 11:24:12 default[20180520t111014]    fatal: true }

在网络浏览器中,我收到502错误。

这是我的app.yaml

    runtime: nodejs
env: flex

beta_settings:
  # The connection name of your instance, available by using
  # 'gcloud beta sql instances describe [INSTANCE_NAME]' or from
  # the Instance details page in the Google Cloud Platform Console.
  cloud_sql_instances: {project-id}:europe-west1:{database-name}

socketPath应该是:

socketPath: "/cloudsql/{project-id}:europe-west1:{database}"

更新您的app.yaml文件中的beta_settings。

beta_settings:
  cloud_sql_instances: {project-id}:europe-west1:{database-name}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM