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

ifh*_*fhy 10 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);
  });
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行.js时,我得到了这个错误.我已经尝试了很多解决方案,包括我经常发现的解决方案,但它没有用.所以现在我不知道该怎么做.有人能帮助我吗?

谢谢

小智 22

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

为我工作.root密码更改为'password'


小智 3

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

use mysql;
update user set authentication_string=password(''), plugin='mysql_native_password' where user='root';
Run Code Online (Sandbox Code Playgroud)

  • 事实上,这是关于将插件更改为 mysql_native_password 但不是那样,因为正如我在上一篇文章中所说,我尝试过这样做,但语法是错误的。我搜索了 MySQL 文档,发现了这个: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; 这成功了!不过还是谢谢你的帮助:) (3认同)