mysql - 一段时间后 MySQL 连接断开
问题描述
我正在使用使用 Node.js 构建的 websocket。我在脚本中添加了一些与数据库的基本交互(简单的插入/更新/选择查询)。问题是大约 30 秒后脚本因以下错误而崩溃:
events.js:291
throw er; // Unhandled 'error' event
^
Error: Connection lost: The server closed the connection.
at Protocol.end (/home/admin/web/ohrana.ua/public_html/webrtc/node_modules/mysql/lib/protocol/Protocol.js:112:13)
at Socket.<anonymous> (/home/admin/web/ohrana.ua/public_html/webrtc/node_modules/mysql/lib/Connection.js:94:28)
at Socket.<anonymous> (/home/admin/web/ohrana.ua/public_html/webrtc/node_modules/mysql/lib/Connection.js:526:10)
at Socket.emit (events.js:326:22)
at endReadableNT (_stream_readable.js:1223:12)
at processTicksAndRejections (internal/process/task_queues.js:84:21)
Emitted 'error' event on Connection instance at:
at Connection._handleProtocolError (/home/admin/web/ohrana.ua/public_html/webrtc/node_modules/mysql/lib/Connection.js:423:8)
at Protocol.emit (events.js:314:20)
at Protocol._delegateError (/home/admin/web/ohrana.ua/public_html/webrtc/node_modules/mysql/lib/protocol/Protocol.js:398:10)
at Protocol.end (/home/admin/web/ohrana.ua/public_html/webrtc/node_modules/mysql/lib/protocol/Protocol.js:116:8)
at Socket.<anonymous> (/home/admin/web/ohrana.ua/public_html/webrtc/node_modules/mysql/lib/Connection.js:94:28)
[... lines matching original stack trace ...]
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
fatal: true,
code: 'PROTOCOL_CONNECTION_LOST'
}
我用谷歌搜索了这个并找到了将这部分代码添加到脚本中的解决方案:
mysqlc.on('error',err=>{
if(err.code==='PROTOCOL_CONNECTION_LOST'){
mysqlc=null;
mysqlc=mysql.createConnection(db_params)
}
else throw err;
});
然而它并没有帮助。在我将此代码添加到脚本之后,脚本启动和崩溃之间的时间似乎增加了(现在大约是 5-10 分钟),但无论如何脚本崩溃并出现相同的错误。
然后我用谷歌搜索了另一个没有帮助的解决方案。据说加了
connectTimeout:24*60*60*1000
进入我在初始化连接到 mysql.createConnection() 时使用的参数
然而它也没有帮助。所以我被困在这一点上,不知道该怎么做以及如何处理这个错误。需要一些建议。
解决方案
推荐阅读
- mysql - 如何在节点 JS 中编写长 MySQL 查询
- python - 将python字典转换为python列表
- javascript - 如何在 ES5 中实现从服务器返回的图像的延迟加载?
- powershell - 当您启动新的 PowerShell 提示符时,什么会加载 Microsoft.PowerShell.Utility 模块?
- c++ - 使用 gcc 版本 4.8.5 而不是 3.2.3 编译时出错:4.8.5 中较弱的功能消歧?
- java - Project Reactor:调度程序#parallel & Schedulers#elastic purpose
- scala - Kafka 流媒体重置问题
- ios - 如何返回到第一个 collectionview 单元格项目?
- sql - Oracle SQL - 尝试将一秒添加到我从文本字段中提取的日期
- mysql - 水平连接 n 个结果