我试图从另一个测试服务器连接远程服务器MySQL数据库 使用节点js从我的其余API。
我的数据库connection.js
var mysql = require('mysql');
var poolConnection = mysql.createPool({
connectionLimit : 100,
host : 'xx.xx.xx.xxx',
port : 3306,
user : 'testuser',
password : 'test123',
socketPath : '/var/run/mysqld/mysqld.sock'
});
exports.query = function(sql,args,callback){
poolConnection.query(sql,args,callback);
}
尝试从我的API运行查询时,我收到此错误:
{ Error: connect ENOENT /var/run/mysqld/mysqld.sock
at Object.exports._errnoException (util.js:1020:11)
at exports._exceptionWithHostPort (util.js:1043:20)
at PipeConnectWrap.afterConnect [as oncomplete] (net.js:1090:14)
----------------------------
code: 'ENOENT',
errno: 'ENOENT',
syscall: 'connect',
address: '/var/run/mysqld/mysqld.sock',
fatal: true }
从许多其他StackOverflow引用中,我也尝试注释掉bind-address,但也没有任何成功。如何解决这个问题。
答案 0 :(得分:1)
对于与远程MySQL服务器的连接,请忽略socketPath
选项,因为只有当MySQL服务器与您的应用程序在同一主机上运行时才有意义。
这确实需要将MySQL服务器设置为允许通过TCP进行连接。