Как связать Node.js с MySQL 8.0 с помощью Express? - PullRequest
0 голосов
/ 01 июня 2018

Я пытаюсь подключить Nodejs к MySQL 8.0 с помощью Express.мой код:

var express = require('express');
var router = express.Router();
var mysql = require('mysql');

router.get('/', function(req, res, next) { 
    var connection = mysql.createConnection({
      host     : 'localhost',
      user     : 'root',
      password : 'rootpass'
    });    
    connection.connect(function(err) {
      if (err) throw err;
      console.log('Connected!');
    });
});

приведенный выше код находится на официальной странице Express, но я предполагаю, что это для версий MySQL под 8.0.

, когда я запускаю проект, я получаю следующую ошибку:

 throw err; // Rethrow non-MySQL errors
    ^
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
at Handshake.Sequence._packetToError (G:\Fractal projets\fractalpage\bfweb\node_modules\mysql\lib\protocol\sequences\Sequence.js:52:14)

MySQL ранее был установлен

1 Ответ

0 голосов
/ 01 июня 2018

Похоже, что вы настроили пользователя с помощью mysql_old_auth. Вы можете изменить с помощью любого из этих параметров преобразование в новый протокол проверки подлинности: http://dev.mysql.com/doc/refman/5.7/en/old-client.html или разрешить использование небезопасной проверки подлинности: https://github.com/mysqljs/mysql#connection-options параметр insecureAuth

Выше не работал у меня, но следующая ссылка работает https://insidemysql.com/introducing-connector-node-js-for-mysql-8-0/

...