簡體   English   中英

Node.JS / MySQL-錯誤:連接ECONNREFUSED-隨機發生

[英]Node.JS/MySQL - Error: connect ECONNREFUSED - happening at random

我正在嘗試使用Node.JS連接到MySQL數據庫,起初它可以工作。 然后,隨機地給出以下錯誤:

Error: connect ECONNREFUSED 127.0.0.1:3306
    at Object._errnoException (util.js:1031:13)
    at _exceptionWithHostPort (util.js:1052:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1195:14)
    --------------------
    at Protocol._enqueue (/root/Geola/node_modules/mysql/lib/protocol/Protocol.js:145:48)
    at Protocol.handshake (/root/Geola/node_modules/mysql/lib/protocol/Protocol.js:52:23)
    at Connection.connect (/root/Geola/node_modules/mysql/lib/Connection.js:130:18)
    at Object.<anonymous> (/root/Geola/runMain.js:24:12)
    at Module._compile (module.js:641:30)
    at Object.Module._extensions..js (module.js:652:10)
    at Module.load (module.js:560:32)
    at tryModuleLoad (module.js:503:12)
    at Function.Module._load (module.js:495:3)
    at Object.<anonymous> (/usr/local/lib/node_modules/pm2/lib/ProcessContainerFork.js:73:21)

我使用命令netstat -tlnp仔細檢查了端口是否正確,並返回了tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 25362/mysqld

這似乎是正確的,所以我重新啟動Node.JS應用程序,然后一切又恢復正常……直到再次隨機出現錯誤。 我僅在嘗試與數據庫交互時測試了它是否出錯,並且發現它確實確實會隨機吐​​出該錯誤。 有時我可以與數據庫進行交互,有時卻不能。 我發現此錯誤很奇怪,因此如果有人知道此問題,請告訴我。 謝謝!

如果您的應用無法連接到您的mysql實例,則會導致此問題。 您可以捕獲這些錯誤,以使它們不會通過偵聽mysql error事件而拋出。

connection.on('error', function(err) {
  console.log(err)
})

即使mysql在3306上運行,也有可能您的連接已用盡,或者這可能是暫時的網絡問題。 您可以使用show variables like "max_connections"檢查mysql,您可能需要增加它。 另外,請確保您的應用僅在啟動時建立連接,而不在路由或其他動態區域內建立連接。 但是,當我遇到這種情況時,通常是由於應用程序服務器和數據庫服務器之間的網絡連接不良。

好的,我找到了答案。 只是數據庫托管者Digital Ocean限制了一次可以發送多少數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM