我沒有問題,通過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);
});
我該如何解決這個問題?
2016-11-06
J Del
+0
不應該將'socketPath'路徑設置爲:''/ var/lib/mysqld/mysqld.sock'而不是'/ var/run/mysqld/mysqld.sock'? –
+0
我看到我粘貼了錯誤的錯誤。本來我認爲它是/ var/lib,然後我將它確認爲/ var/run /。要100%清除,我現在得到的錯誤是'錯誤:連接ENOENT/var/run/mysqld/mysqld.sock''。對困惑感到抱歉。 –
+0
我使用'sudo find/-type s'搜索scotchbox機器上的mysql套接字,似乎套接字位於'/ run/mysqld/mysqld.sock' –
本文链接:https://my.lmcjl.com/post/935.html
4 评论