【发布时间】:2018-12-11 16:53:52
【问题描述】:
面对这样的问题,我无法将 Cloud Functions 连接到 Cloud SQL 数据库
我用来连接数据库的代码:
var mysql = require('mysql');
exports.mysql = function handler(req, res) {
var c = mysql.createConnection({
socketPath: '/cloudsql/' + 'instance Connection Name',
user: 'root',
password: 'lns12345',
database: 'Sample'
});
c.connect();
c.query('SELECT * from user', req.body.user, function(e, results) {
//made reply here
if (results) {
console.log('Database succeed')
} else {
console.log('new error created')
}
console.log('my E result is :', e)
console.log('My results is :', results)
});
};
我收到的错误:
Error: function crashed. Details:
connect ECONNREFUSED /cloudsql/'instance Connection Name'
我在 Cloud Functions 中得到的详细日志:
Error: connect ECONNREFUSED /cloudsql/'instance connection Name' at
Object.exports._errnoException (util.js:1020:11) at
exports._exceptionWithHostPort (util.js:1043:20) at
PipeConnectWrap.afterConnect [as oncomplete] (net.js:1105:14)
-------------------- at Protocol._enqueue (/user_code/node_modules/mysql/lib/protocol/Protocol.js:145:48) at
Protocol.handshake
(/user_code/node_modules/mysql/lib/protocol/Protocol.js:52:23) at
Connection.connect
(/user_code/node_modules/mysql/lib/Connection.js:130:18) at handler
(/user_code/index.js:20:4) at /var/tmp/worker/worker.js:684:7 at
/var/tmp/worker/worker.js:668:9 at _combinedTickCallback
(internal/process/next_tick.js:73:7) at process._tickDomainCallback
(internal/process/next_tick.js:128:9)
【问题讨论】:
-
您的程序在哪个 javascript 行崩溃了?如果在 c.connect() 处,则不必将代码放在后面,因为它会污染您的问题。
-
什么代表“实例连接名称”?它是使用的真实姓名还是仅用于问题的字符串?
-
您能否格式化 StackTrace 以便其他人更容易阅读您的问题?您已经格式化了源代码,所以我建议您使用相同的技术格式化 StackTrace :-)
-
我认为,如果您进行所有这些更改,另一个“纠正者”会接受您的问题!
-
> 实际上,当通过 socketpath 使用 cloudfunctions 连接 Cloudsql 时,它无法连接
标签: mysql node.js google-cloud-platform