带有Forever脚本的Nodejs在某段时间后将无法访问

问题描述:

我在Digital Ocean中托管了一个Nodejs项目,并使用Forever脚本保持它运行。但是我意识到经过一段时间后会出现一些导致网站停播的错误。这不只是发生过一次,但已经几次后,下方则是永远的日志:带有Forever脚本的Nodejs在某段时间后将无法访问

Error: Connection lost: The server closed the connection. 
    at Protocol.end (/var/www/menu/node_modules/mysql/lib/protocol/Protocol.js:109:13) 
    at Socket.<anonymous> (/var/www/menu/node_modules/mysql/lib/Connection.js:109:28) 
    at emitNone (events.js:72:20) 
    at Socket.emit (events.js:166:7) 
    at endReadableNT (_stream_readable.js:905:12) 
    at nextTickCallbackWith2Args (node.js:441:9) 
    at process._tickCallback (node.js:355:17) 
error: Forever detected script exited with code: 1 
error: Script restart attempt #178 
Listening on xxx.xxx.xxx.xxx, server_port 80 
events.js:141 
     throw er; // Unhandled 'error' event 

Error: connect ECONNREFUSED 127.0.0.1:3306 
    at Object.exports._errnoException (util.js:870:11) 
    at exports._exceptionWithHostPort (util.js:893:20) 
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1063:14) 
    -------------------- 
    at Protocol._enqueue (/var/www/menu/node_modules/mysql/lib/protocol/Protocol.js:141:48) 
    at Protocol.handshake (/var/www/menu/node_modules/mysql/lib/protocol/Protocol.js:52:41) 
    at Connection.connect (/var/www/menu/node_modules/mysql/lib/Connection.js:130:18) 
    at Connection._implyConnect (/var/www/menu/node_modules/mysql/lib/Connection.js:461:10) 
    at Connection.query (/var/www/menu/node_modules/mysql/lib/Connection.js:206:8) 
    at Object.<anonymous> (/var/www/menu/config/db.js:14:12) 
    at Module._compile (module.js:410:26) 
    at Object.Module._extensions..js (module.js:417:10) 
    at Module.load (module.js:344:32) 
    at Function.Module._load (module.js:301:12) 
error: Forever detected script exited with code: 1 

我不知道为什么作为日志没有指出哪行是导致错误发生这种情况,而且好像永远有尝试重新启动脚本但失败。但是,一旦我SSH到我的服务器,并再次启动,那么它已经正常工作。任何人都可以帮忙?谢谢。

Error: connect ECONNREFUSED 127.0.0.1:3306 

您收到此错误,表示该端口正在使用中。通过使用以下命令可以终止运行在该端口上的进程。

sudo kill $(sudo lsof -t -i:3306) 

此后,您可以重新部署您的服务器,像您一样永远使用。

+0

但之后的永远重启共有178次只是这个错误发生,所以这是不是导致脚本无法主要原因重新启动吧? – Ping

+0

永远无法重启的原因是因为你的mysql由于超时而被断开连接,并且当你(永远)尝试重新连接进程时已经在运行 –

+0

这意味着服务器配置有问题。我建议你检查永久日志以找出错误。尝试使用“永久记录”列出日志文件,然后列出“永久记录(数字)”,这里number是日志文件的编号。 –

发生在我身上 这个问题似乎与mysql连接有关。

请参阅本计算器问题解决您的问题

nodejs mysql Error: Connection lost The server closed the connection