node写的web网页,部署到centos7上边,跑一段时间就报错了
events.js:292
throw er; // Unhandled 'error' event
Error: Packets out of order. Got: 0 Expected: 28
at Parser._tryReadPacketHeader (/usr/src/sh/node_modules/mysql/lib/protocol/Parser.js:470:15)
at Parser.write (/usr/src/sh/node_modules/mysql/lib/protocol/Parser.js:33:29)
at Protocol.write (/usr/src/sh/node_modules/mysql/lib/protocol/Protocol.js:38:16)
at Socket.<anonymous> (/usr/src/sh/node_modules/mysql/lib/Connection.js:88:28)
at Socket.<anonymous> (/usr/src/sh/node_modules/mysql/lib/Connection.js:526:10)
at Socket.emit (events.js:315:20)
at addChunk (_stream_readable.js:297:12)
at readableAddChunk (_stream_readable.js:273:9)
at Socket.Readable.push (_stream_readable.js:214:10)
at TCP.onStreamRead (internal/stream_base_commons.js:186:23)
Emitted 'error' event on Connection instance at:
at Connection._handleProtocolError (/usr/src/sh/node_modules/mysql/lib/Connection.js:423:8)
at Protocol.emit (events.js:315:20)
at Protocol._delegateError (/usr/src/sh/node_modules/mysql/lib/protocol/Protocol.js:398:10)
at Protocol.handleParserError (/usr/src/sh/node_modules/mysql/lib/protocol/Protocol.js:380:10)
at Parser._tryReadPacketHeader (/usr/src/sh/node_modules/mysql/lib/protocol/Parser.js:478:10)
at Parser.write (/usr/src/sh/node_modules/mysql/lib/protocol/Parser.js:33:29)
[... lines matching original stack trace ...]
at Socket.emit (events.js:315:20) {
code: 'PROTOCOL_PACKETS_OUT_OF_ORDER',
fatal: true
}
问题 mysql报错:Packets out of order
原因:超出mysql接收的数据包大小。
进入mysql命令行,查询 max_allow_packet: show variables like 'max_allowed_packet';
结果为1048576=1024K=1M
。
解决:加大此参数的值,设置为10M,set global max_allowed_packet = 1010241024,重启mysql。
注意:如果配置文件 my.cnf 内默认设置了 max_allow_packet= 1M,那么即使通过命令修改此参数的值为10M,重启mysql也会还原为 1M。所以最好在 my.cnf 内修改max_allow_packet的值。