Как мне исправить ошибку подключения sequalize? - PullRequest
0 голосов
/ 10 октября 2019

Я создаю приложение с Node, Express и MySql. Я использую MySql версии 8.0. Я использую пакет Sequelize и MySQL2 npm для подключения к моей базе данных. У меня есть соединение с базой данных, настроенное так, как описано в документации Sequelize:

config.js

const Sequelize = require("sequelize");

module.exports = new Sequelize("call_on_me", "root", "my password", {
  host: "localhost",
  dialect: "mysql",
  operatorAliases: false,

  pool: {
    max: 5,
    min: 0,
    acquire: 30000,
    idle: 10000
  }
})

И я проверяю соединение в файле моего сервера следующим образом:

server.js

const db = require("./config/config");

db.authenticate()
  .then(() => console.log("Database connected!"))
  .catch(err => console.log("Error: " + err));

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

Ошибка: SequelizeConnectionError: Клиент не поддерживает протокол аутентификации, запрошенный сервером;подумайте об обновлении клиента MySQL

Насколько я понимаю, 8.0 сейчас так же высоко, как и сейчас, поэтому я ничего не могу найти об этом обновлении. Это наводит меня на мысль, что в моем конфиг-соединении есть какая-то ошибка. Я что-то пропустил? Или я просто не понимаю чего-то очень базового, о чем я должен знать?

Если вам нужен еще один фрагмент кода, просто дайте мне знать.

Спасибозаранее за вашу помощь.

1 Ответ

1 голос
/ 11 октября 2019

Вы должны изменить режим аутентификации, чтобы он работал как в предыдущей версии mysql

и добавьте это в свой my.cnf:

[mysqld]
default_authentication_plugin=mysql_native_password

Сделайте это перед добавлением любых пользователей.

...