mysqlnode.jsexpressmysql-workbench

errno: 1251, sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client


I'm creating the simple api project in nodejs.

For that I have installed mySql workbench with version 8.0.11. I have created config file, dbConnection.js file and in the dbconnection.js file I have written the following code :

var mysql = require('mysql');
var path = require('path');
var config = require(path.resolve('./', 'config'))

var connection = mysql.createConnection({
    host: config.databaseHost,
    user: config.databaseUser,
    password: config.databasePassword,
    database: config.databaseDatabaseName,
    multipleStatements: true
});

connection.connect(function (err) {
    if (err) {
        console.log('Error connecting to Database',err);
        return;
    }
    console.log('Connection established');
});
module.exports = connection;

And I'm facing following error :

code: 'ER_NOT_SUPPORTED_AUTH_MODE', errno: 1251, sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client', sqlState: '08004', fatal: true

Note : I kept my congif as simple as it can be, user = root , password = root, host = localhost.


Solution

  • Open terminal and login:

    mysql -u root -p
    

    (then type your password)

    After that:

    USE mysql;
    
    UPDATE user SET authentication_string=password(''), plugin='mysql_native_password' WHERE user='root';
    

    And the last important thing is to reset mysql service:

    sudo service mysql restart