errno: 1251, sqlMessage: 'Клиент не поддерживает протокол аутентификации, запрошенный сервером; рассмотреть вопрос об обновлении клиента MySQL - PullRequest
0 голосов
/ 03 июля 2018

Я создаю простой проект API в nodejs. Для этого я установил MySql Workbench с версией 8.0.11. Я создал файл конфигурации, файл dbConnection.js и в файле dbconnection.js я написал следующий код:

    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;

и я столкнулся со следующей ошибкой:

код: 'ER_NOT_SUPPORTED_AUTH_MODE', ошибка: 1251, sqlMessage: 'Клиент не поддерживает протокол аутентификации, запрошенный сервером; рассмотреть вопрос об обновлении клиента MySQL », sqlState: '08004', фатально: верно

Примечание: я сохранил свой congif настолько простым, насколько это возможно, пользователь = root, пароль = root, host = localhost.

Ответы [ 2 ]

0 голосов
/ 28 июля 2019

после того, как вы установили свой хост, root, пароль и т. Д. Внутри функции подключения MySQL ... вставьте в свою базу данных следующую информацию, которую вы пытаетесь подключить в рабочей среде:

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

Вернитесь к терминалу и снова запустите узел <file name.js>

0 голосов
/ 03 июля 2018

Открыть терминал и авторизоваться:

mysql -uroot -p

(введите свой пароль)

После этого:

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

И последнее, что нужно сделать, это сбросить службу mysql:

sudo service mysql restart
...