我在Windows上运行scotch box(一个无用的LAMP堆栈)。错误connect node.js中的ENOENT /var/run/mysqld/mysqld.sock
我没有问题,通过PHP或Navicat正常连接到MySQL。
,但我试图连接到它Node.js
,我得到错误“Error connecting to MySQL: Error: connect ECONNREFUSED 127.0.0.1:3306
”
从我的周围搜索明白看来我需要设置套接字路径
但当我这样做时,我得到的错误“Error connecting to MySQL: Error: connect ENOENT /var/run/mysqld/mysqld.sock
”
我100%确定这是正确的套接字路径。我已经SSH进入vagrant并验证mysqld.sock实际上是否存在,并且已在/etc/mysql/my.cnf中正确设置。跳过网络也关闭。
我也尝试将绑定地址设置为0.0.0.0,并完全注释掉绑定地址,重命名mysqld.sock并重新启动mysql服务器,以便它再次重新创建mysqld.sock。还尝试禁用我的防火墙(无论如何都允许node.js)并重新安装MySQL。
这都不是工作和错误仍然是相同的:“Error connecting to MySQL: Error: connect ENOENT /var/run/mysqld/mysqld.sock
”
这是我到目前为止的代码:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'root',
database : 'test',
socketPath : '/var/run/mysqld/mysqld.sock'
});
connection.connect(function(err) {
if (err) {
console.error('Error connecting to MySQL: ' + err.stack);
return;
}
console.log('connected as id ' + connection.threadId);
});
我该如何解决这个问题?
不应该将'socketPath'路径设置为:''/ var/lib/mysqld/mysqld.sock'而不是'/ var/run/mysqld/mysqld.sock'? – Cyclonecode
我看到我粘贴了错误的错误。本来我认为它是/ var/lib,然后我将它确认为/ var/run /。要100%清除,我现在得到的错误是'错误:连接ENOENT/var/run/mysqld/mysqld.sock''。对困惑感到抱歉。 –
我使用'sudo find/-type s'搜索scotchbox机器上的mysql套接字,似乎套接字位于'/ run/mysqld/mysqld.sock' – Cyclonecode