简体   繁体   中英

Node.js & MySQL - Error: 1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client

Right now I have only this code:

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);
  });

But when I try to run the .js I get this error . I have already tried a lot of solutions out there, including the one I found more often but it didn't work . So right now I don't know what to do. Can somebody help me?

Thank you

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'

Worked for me. root password is changed to 'password'

Changing the plugin to mysql_native_password might solve the problem!

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

Basically when I was trying to connect to Mysql Query Browser at that time I as facing the issue.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'

Worked for me. root password is changed to 'root'

I found out that I was caused by incorrect parameters.

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

username is undefined, but the error is "consider upgrading MySQL client" So modify the user name to be true, the error resolved.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM