这个错误是在我的web服务连续运行8-10个小时后出现的。
{
"date": "Wed Sep 13 2017 21:22:25 GMT+0000 (UTC)",
"process": {
"pid": 24337,
"uid": 1000,
"gid": 1000,
"cwd": "/path/to/my/file/",
"execPath": "/path/to/my/nvm/.nvm/versions/node/v4.4.5/bin/node",
"version": "v4.4.5",
"argv": ["/path/to/my/nvm/.nvm/versions/node/v4.4.5/bin/node", "/path/to/my/file/app.js"],
"memoryUsage": {
"rss": 133083136,
"heapTotal": 83753568,
"heapUsed": 71120576
}
},
"os": {
"loadavg": [0.0029296875, 0.0146484375, 0.04541015625],
"uptime": 397147
},
"trace": [{
"column": 13,
"file": "/path/to/my/file/node_modules/mysql/lib/protocol/Protocol.js",
"function": "Protocol.end",
"line": 109,
"method": "end",
"native": false
}, {
"column": 28,
"file": "/path/to/my/file/node_modules/mysql/lib/Connection.js",
"function": "",
"line": 102,
"method": null,
"native": false
}, {
"column": 20,
"file": "events.js",
"function": "emitNone",
"line": 72,
"method": null,
"native": false
}, {
"column": 7,
"file": "events.js",
"function": "Socket.emit",
"line": 166,
"method": "emit",
"native": false
}, {
"column": 12,
"file": "_stream_readable.js",
"function": "endReadableNT",
"line": 913,
"method": null,
"native": false
}, {
"column": 9,
"file": "node.js",
"function": "nextTickCallbackWith2Args",
"line": 442,
"method": null,
"native": false
}, {
"column": 17,
"file": "node.js",
"function": "process._tickDomainCallback",
"line": 397,
"method": "_tickDomainCallback",
"native": false
}],
"stack": ["Error: Connection lost: The server closed the connection.", " at Protocol.end (/path/to/my/file/node_modules/mysql/lib/protocol/Protocol.js:109:13)", " at Socket.<anonymous> (/path/to/my/file/node_modules/mysql/lib/Connection.js:102:28)", " at emitNone (events.js:72:20)", " at Socket.emit (events.js:166:7)", " at endReadableNT (_stream_readable.js:913:12)", " at nextTickCallbackWith2Args (node.js:442:9)", " at process._tickDomainCallback (node.js:397:17)"],
"level": "error",
"message": "uncaughtException: Connection lost: The server closed the connection.",
"timestamp": "2017-09-13T21:22:25.271Z"
}找不到为什么会发生这种情况?我还检查了我的数据库是否空闲,但我的数据库是完美的,它没有空闲。那么还有什么在杀死我的节点进程呢?我已经做了几次研究,我不知道.then,我开始通过api记录请求,然后我发现了这个错误消息,这是在连续几个小时的处理之后才出现的。
发布于 2017-09-14 14:30:10
您可以在该堆栈跟踪中看到,MySQL服务器本身正在关闭与MySQL数据库的连接。
This issue介绍了服务器可能断开连接的原因,以及如何增加MySQL服务器超时。
描述如何在您的Node.js应用程序本身中处理此特定错误事件的Here is a similar question。这对于在断开连接时动态地重新连接到MySQL服务器非常有用。
如果按照第二个链接中的示例安全地重新连接,则应该能够防止应用程序出现这些数据库超时。与简单地延长超时长度相比,这是一种更严格的解决方案,尤其是当您不必完全依赖应用程序外部的行为时。
https://stackoverflow.com/questions/46211010
复制相似问题