Node.js& MySQL - 错误:1251 - 客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端

时间:2018-04-24 00:48:21

标签: javascript mysql node.js sequelize.js

现在我只有这个代码:

const Sequelize = require('sequelize');
const sequelize = new Sequelize('database', 'root', 'passwd', {
  host: 'localhost',
  dialect: 'mysql',

    // http://docs.sequelizejs.com/manual/tutorial/querying.html#operators
  operatorsAliases: false
});
sequelize
  .authenticate()
  .then(() => {
    console.log('Connection has been established successfully.');
  })
  .catch(err => {
    console.error('Unable to connect to the database:', err);
  });

但是当我尝试运行.js时,我得到this error。我已经尝试了很多解决方案,包括我找到的more often but it didn't work。所以现在我不知道该怎么做。有人可以帮帮我吗?

谢谢

4 个答案:

答案 0 :(得分:16)

ALTER USER'root'@'localhost'用mysql_native_password识别BY'密码'

为我工作。 root密码更改为“密码”

答案 1 :(得分:2)

将插件更改为mysql_native_password可能会解决问题!

use mysql;
update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';

答案 2 :(得分:0)

基本上,当我当时尝试连接到Mysql Query Browser时,我遇到了问题。 用mysql_native_password通过'root'标识ALTER USER'root'@'localhost'

为我工作。 root密码更改为“ root”

答案 3 :(得分:0)

我发现我是由错误的参数引起的。

{ database: 'abc',
  username: undefined,
  password: 'efsefs',
}

用户名未定义,但错误是“考虑升级MySQL客户端” 因此,将用户名修改为true,即可解决错误。