Node.js MySQL:解決連線時的「ECONNREFUSED」錯誤
嘗試透過Node.js 連接到MySQL 伺服器時,遇到「ECONNREFUSED」錯誤可能會令人困惑,特別是當同一台機器上的PHP/Apache伺服器在沒有任何服務的情況下運行時問題。
讓我們調查此錯誤的原因並提供成功的解決方案。
挑戰
在提供的程式碼片段中, MySQL 主機被定義為“localhost”,而機器上的MySQL 伺服器會偵聽Unix 套接字“/var /run/mysqld/mysqld.sock」而不是標準的TCP 連接埠。當 Node.js 應用程式嘗試使用 TCP 連線時,這種不匹配會導致「ECONNREFUSED」錯誤。
解決方案
要解決此問題,我們需要修改連線選項指定 Unix 套接字路徑而不是 TCP 連接埠。這可以透過將以下行新增至連線選項:
port: '/var/run/mysqld/mysqld.sock'
更新的程式碼
var mysql_link = { host: 'localhost', port: '/var/run/mysqld/mysqld.sock', // Modified to specify Unix socket path. database: 'nodetest', user: 'root', password: 'xxx' };
結論
結論 透過指定正確的連接選項,我們可以確保Node.js 應用程式能夠與MySQL 伺服器並繼續無縫運行。驗證 MySQL 伺服器的配置並使用適當的連線參數非常重要,以避免將來遇到此類錯誤。以上是Node.js MySQL ECONNREFUSED 錯誤:如何使用 Unix 套接字進行連線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!