npm mysql enoent_錯誤connect node.js中的ENOENT /var/run/mys

我沒有問題,通過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 评论

留下您的评论.