我在Windows上运行scotch box(一个流浪汉LAMP堆栈)。
通过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%确定这是正确的套接字路径。我已经连接到vagrant并验证mysqld.sock实际上存在并且它在/etc/mysql/my.cnf中正确设置。跳过网络也是关闭的。
我也尝试将bind-address设置为0.0.0.0并完全注释掉bind-address,重命名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);
});
我该如何解决这个问题?
答案 0 :(得分:0)
所以我设法解决了。
您所要做的就是在my.cnf中注释掉bind-address并使用网站的IP进行连接。
在我的情况下,它是192.168.33.10(这是scotchbox默认设置的内容)。
if(isset($_POST['nombre']))
答案 1 :(得分:0)
您需要编辑的文件是 /etc/mysql/mysql.conf.d/mysqld.cnf
注释掉此文件中的 bind-address 行,你应该没问题。