ER_HANDSHAKE_ERROR: плохое рукопожатие - подключение к внешней БД с помощью node-mysql - PullRequest
0 голосов
/ 23 октября 2019

Я новичок в node-mysql и хочу подключиться к внешней базе данных. База данных запущена и работает, так как я могу подключиться к ней через CLI MySQL, используя те же учетные данные (или даже через инструмент администратора MySQL). Версия сервера MySQL - «MySQL Community Server 5.1.60-log». Но используя 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));
    });
});

В чем здесь проблема и как ее решить? Спасибо!

...