错误:数据包乱序。得到:1 预期:0
Posted
技术标签:
【中文标题】错误:数据包乱序。得到:1 预期:0【英文标题】:Error: Packets out of order. Got: 1 Expected: 0 【发布时间】:2020-06-22 04:40:52 【问题描述】:我为这个问题找到的所有解决方案都不适合我。 我只是在加载一个数据集,在大约 150 次请求之后我得到了这个错误:
Error: Packets out of order. Got: 1 Expected: 0
at Parser._tryReadPacketHeader (C:\dev\node\webkoll\node_modules\mysql\lib\protocol\Parser.js:470:15)
at Parser.write (C:\dev\node\webkoll\node_modules\mysql\lib\protocol\Parser.js:33:29)
at Protocol.write (C:\dev\node\webkoll\node_modules\mysql\lib\protocol\Protocol.js:38:16)
at Socket.<anonymous> (C:\dev\node\webkoll\node_modules\mysql\lib\Connection.js:88:28)
at Socket.<anonymous> (C:\dev\node\webkoll\node_modules\mysql\lib\Connection.js:526:10)
at Socket.emit (events.js:223:5)
at addChunk (_stream_readable.js:309:12)
at readableAddChunk (_stream_readable.js:290:11)
at Socket.Readable.push (_stream_readable.js:224:10)
at TCP.onStreamRead (internal/stream_base_commons.js:181:23)
--------------------
at Protocol._enqueue (C:\dev\node\webkoll\node_modules\mysql\lib\protocol\Protocol.js:144:48)
at Protocol.handshake (C:\dev\node\webkoll\node_modules\mysql\lib\protocol\Protocol.js:51:23)
at PoolConnection.connect (C:\dev\node\webkoll\node_modules\mysql\lib\Connection.js:116:18)
at Pool.getConnection (C:\dev\node\webkoll\node_modules\mysql\lib\Pool.js:48:16)
at C:\dev\node\webkoll\dbHelper.js:35:22
at new Promise (<anonymous>)
at dbHelper.execQueryWithParams (C:\dev\node\webkoll\dbHelper.js:34:16)
at dbHelper.loadFinishedResultFlag (C:\dev\node\webkoll\dbHelper.js:68:21)
at C:\dev\node\webkoll\index.js:321:30
at Layer.handle [as handle_request] (C:\dev\node\webkoll\node_modules\express\lib\router\layer.js:95:5) code: PROTOCOL_PACKETS_OUT_OF_ORDER', fatal: true
我正在使用节点 v12.14.1 和 npm 包 mysql v2.18.1。 我还将 max_allowed_packet 设置为 1G,但没有帮助。
这里是我用来获取数据的代码:
class dbHelper
constructor()
const host, user, password, database, connectionLimit = config.db;
this.con = mysql.createPool(
connectionLimit,
host,
user,
password,
database
);
async execQueryWithParams(query, params)
return new Promise((resolve, reject) =>
this.con.getConnection((err, connect) =>
if (err)
console.log(err);
return reject(err)
connect.query(query, [params], (err, result) =>
if (err)
return reject(err);
resolve(result);
)
)
);
【问题讨论】:
【参考方案1】:我发现了问题。
使用 npm 包 mysql2 后,我收到错误消息:“连接太多”。
我经常以愚蠢的方式初始化我的类,所以只使用一个实例后一切正常。
【讨论】:
【参考方案2】:尝试增加 MAX_Packet_Allowed 内存 - 它适用于我的情况
【讨论】:
以上是关于错误:数据包乱序。得到:1 预期:0的主要内容,如果未能解决你的问题,请参考以下文章
PDOException:数据包乱序。预期 0 收到 1. 数据包大小=23
MySQL java jdbc MySQLNonTransientConnectionException:得到的数据包乱序