大家好,又见面了,我是你们的朋友全栈君。
我正在运行通过node-
mysql模块连接到MySQL的Node服务器。连接和查询MySQL最初运行良好,没有任何错误,但是,将Node服务器闲置几个小时后的第一个查询会导致错误。错误是熟悉的read
ECONNRESET,来自node-mysql模块的内部。
堆栈跟踪(请注意,跟踪的三个条目属于我的应用程序的错误报告代码):
Error
at exports.Error.utils.createClass.init (D:\home\site\wwwroot\errors.js:180:16)
at new newclass (D:\home\site\wwwroot\utils.js:68:14)
at Query._callback (D:\home\site\wwwroot\db.js:281:21)
at Query.Sequence.end (D:\home\site\wwwroot\node_modules\mysql\lib\protocol\sequences\Sequence.js:78:24)
at Protocol.handleNetworkError (D:\home\site\wwwroot\node_modules\mysql\lib\protocol\Protocol.js:271:14)
at PoolConnection.Connection._handleNetworkError (D:\home\site\wwwroot\node_modules\mysql\lib\Connection.js:269:18)
at Socket.EventEmitter.emit (events.js:95:17)
at net.js:441:14
at process._tickCallback (node.js:415:13)
我的云节点服务器和MySQL服务器以及两者的本地设置都发生此错误。
我的问题:
这个问题似乎是由于Node到MySQL服务器的连接断开,可能是由于连接寿命限制所致?
使用连接池时,node-mysql应该可以很好地处理断开连接并从连接池中删除它们。在进行查询之前是否不知道断开连接,从而使错误不可避免?
考虑到我在其他StackOverflow帖子中经常看到“读取ECONNRESET”错误,我是否应该在MySQL的其他地方查找问题以进行诊断?
更新:
更多的浏览之后,我觉得我的问题是重复的这一个。看来他的连接也在断开连接,但是没有人建议如何保持连接活动或如何解决第一个查询失败后的错误。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149930.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...