如何解决我的sequalize连接错误?

时间:2019-10-10 20:49:04

标签: mysql sequelize.js mysql-workbench

我正在使用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 个答案:

答案 0 :(得分:1)

您必须更改身份验证模式,以使其像以前的mysql版本一样工作

将此添加到您的my.cnf:

[mysqld]
default_authentication_plugin=mysql_native_password

在添加任何用户之前执行此操作。