【发布时间】:2018-10-30 05:39:51
【问题描述】:
我正在尝试通过托管在与数据库相同的项目中的应用连接到我在 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}
【问题讨论】:
-
你最后解决了吗?我确实遇到了同样的问题,我决心解决它。
标签: mysql node.js google-cloud-platform