Closed
Description
I am getting the exception Packet.readLengthCodedNumberExt when I try to execute the prepare statement with a mysql 8 database. This works fine when I run with mysql 5.
Trace:
at Packet.readLengthCodedNumberExt (C:\dev\mysql2-error\node_modules\mysql2\lib\packets\packet.js:231:13)
at Packet.readLengthCodedNumber (C:\dev\mysql2-error\node_modules\mysql2\lib\packets\packet.js:193:17)
at new ColumnDefinition (C:\dev\mysql2-error\node_modules\mysql2\lib\packets\column_definition.js:28:33)
at Prepare.readParameter (C:\dev\mysql2-error\node_modules\mysql2\lib\commands\prepare.js:80:17)
at Prepare.execute (C:\dev\mysql2-error\node_modules\mysql2\lib\commands\command.js:45:22)
at Connection.handlePacket (C:\dev\mysql2-error\node_modules\mysql2\lib\connection.js:490:32)
at PacketParser.onPacket (C:\dev\mysql2-error\node_modules\mysql2\lib\connection.js:95:12)
at PacketParser.executeStart (C:\dev\mysql2-error\node_modules\mysql2\lib\packet_parser.js:75:16)
at Socket.<anonymous> (C:\dev\mysql2-error\node_modules\mysql2\lib\connection.js:102:25)
at Socket.emit (node:events:527:28)
Code to reproduce:
const mysql = require('mysql2/promise');
/*
docker run --name mysql-dev -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=mydb
-p 3306:3306 mysql:8.0.33 --default-authentication-plugin=mysql_native_password
*/
async function run() {
const conn = await mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'password',
database: 'mydb'
});
await conn.query(`
CREATE TABLE IF NOT EXISTS mytable1 (
id int NOT NULL AUTO_INCREMENT,
value int,
PRIMARY KEY (id)
) ENGINE=InnoDB
`);
await conn.prepare('select value from mytable1 order by ?');
}
run().then(() => {
console.log("ok");
});
Using mysql2 v3.3.3
Metadata
Metadata
Assignees
Labels
No labels