我对node-mysql很陌生,想连接到外部数据库。数据库已启动并正在运行,因为我能够使用相同的凭据(甚至通过MySQL Administrator工具)通过mysql CLI连接到它。服务器的MySQL版本是“ 5.1.60-log MySQL Community Server”。但是,使用mysql-node-module时,出现以下错误:
C:\Users\JohnDoe\databaseIntegration\node_modules\mysql\lib\protocol\Parser.js:437
throw err; // Rethrow non-MySQL errors
^
Error: ER_HANDSHAKE_ERROR: Bad handshake
at Handshake.Sequence._packetToError (C:\Users\JohnDoe\databaseIntegration\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14)
at Handshake.ErrorPacket (C:\Users\JohnDoe\databaseIntegration\node_modules\mysql\lib\protocol\sequences\Handshake.js:123:18)
at Protocol._parsePacket (C:\Users\JohnDoe\databaseIntegration\node_modules\mysql\lib\protocol\Protocol.js:291:23)
at Parser._parsePacket (C:\Users\JohnDoe\databaseIntegration\node_modules\mysql\lib\protocol\Parser.js:433:10)
at Parser.write (C:\Users\JohnDoe\databaseIntegration\node_modules\mysql\lib\protocol\Parser.js:43:10)
at Protocol.write (C:\Users\JohnDoe\databaseIntegration\node_modules\mysql\lib\protocol\Protocol.js:38:16)
at Socket.<anonymous> (C:\Users\JohnDoe\databaseIntegration\node_modules\mysql\lib\Connection.js:91:28)
at Socket.<anonymous> (C:\Users\JohnDoe\databaseIntegration\node_modules\mysql\lib\Connection.js:525:10)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
--------------------
at Protocol._enqueue (C:\Users\JohnDoe\databaseIntegration\node_modules\mysql\lib\protocol\Protocol.js:144:48)
at Protocol.handshake (C:\Users\JohnDoe\databaseIntegration\node_modules\mysql\lib\protocol\Protocol.js:51:23)
at Connection.connect (C:\Users\JohnDoe\databaseIntegration\node_modules\mysql\lib\Connection.js:119:18)
at Object.<anonymous> (C:\Users\JohnDoe\databaseIntegration\test\basicStuff\testconnect.js:15:5)
at Module._compile (module.js:577:32)
at Object.Module._extensions..js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
at Module.runMain (module.js:611:10)
即使使用数据库的本地1:1副本,我也可以连接,进行查询和console.log结果。因此,我猜测node-mysql数据库兼容性肯定有问题。这是“我写的”代码:
const mysql = require('mysql');
var con = mysql.createConnection({
user: 'myuser',
password: 'mypw',
database: 'dbdb',
host: 'dbip',
port: 'dbport',
insecureAuth: true
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
con.query(`SELECT * FROM mytable;`, function (err, result) {
if (err) throw err;
console.log("Result: " + JSON.stringify(result));
});
});
这里可能是什么问题,我该如何解决?谢谢!