Ошибка 'PROTOCOL_PACKETS_OUT_OF_ORDER ' через время после подключения к БД
После успешного подключения к базе данных
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: ***
});
connection.connect(err => {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}
console.log('connected as id ' + connection.threadId);
});
connection.query('SELECT * FROM users', function(error, results, fields) {
if (error) throw error;
console.log(results);
});
Через некоторое время получаю ошибки:
node:events:504
throw er; // Unhandled 'error' event
^
Error: Packets out of order. Got: 0 Expected: 12
at Parser._tryReadPacketHeader (***\node_modules\mysql\lib\protocol\Parser.js:470:15)
at Parser.write (***\node_modules\mysql\lib\protocol\Parser.js:33:29)
at Protocol.write (***\node_modules\mysql\lib\protocol\Protocol.js:38:16)
at Socket.<anonymous> (***\node_modules\mysql\lib\Connection.js:88:28)
at Socket.<anonymous> (***\node_modules\mysql\lib\Connection.js:526:10)
at Socket.emit (node:events:526:28)
at addChunk (node:internal/streams/readable:315:12)
at readableAddChunk (node:internal/streams/readable:289:9)
at Socket.Readable.push (node:internal/streams/readable:228:10)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
Emitted 'error' event on Connection instance at:
at Connection._handleProtocolError (***\node_modules\mysql\lib\Connection.js:423:8)
at Protocol.emit (node:events:526:28)
at Protocol._delegateError (***\node_modules\mysql\lib\protocol\Protocol.js:398:10)
at Protocol.handleParserError (***\node_modules\mysql\lib\protocol\Protocol.js:380:10)
at Parser._tryReadPacketHeader (***\node_modules\mysql\lib\protocol\Parser.js:478:10)
at Parser.write (***\node_modules\mysql\lib\protocol\Parser.js:33:29)
[... lines matching original stack trace ...]
at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {
code: 'PROTOCOL_PACKETS_OUT_OF_ORDER',
fatal: true
}
Нашел на англоязычном stackoverflow решение, суть которого в изменении параметра max_allowed_packet=500M. В соответствии с ним изменил параметр в файле \openserver\userdata\config\MySQL-8.0-Win10_my.ini.
Однако мне это не помогло. Либо параметр я изменяю не в том файле, либо этот вариант мне вовсе не подходит. Как можно решить проблему?
P.S. Использую MYSQL 8.0
Ответы (1 шт):
Автор решения: Voprositel
→ Ссылка
Решил проблему, заменив .createConnection() на .createPool().
const connection = mysql.createPool({
host: 'localhost',
user: 'root',
password: '',
database: ***
});