ER_NOT_SUPPORTED_AUTH_MODE - сервер MySQL
У меня установлена база данных MySQL. Когда я пытаюсь получить к нему доступ через мой Node JS-сервер, я получаю ошибку
"ER_NOT_SUPPORTED_AUTH_MODE: клиент не поддерживает протокол проверки подлинности, запрошенный сервером, рассмотрите возможность обновления клиента MariaDB"
что странно, так как я уже удалил MariaDB и установил MySQL с помощью Homebrew.
Это моя попытка подключения:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '********',
database : 'vod_bill_database'
});
Есть идеи? благодаря
Ответы
Ответ 1
Я полагал, что в некоторых версиях MySQL у них есть аутентификация для установления соединения, которое немного испортилось. Все, что мне нужно было сделать, это добавить строку "insecureAuth: true" к моей попытке подключения.
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '********',
database : 'vod_bill_database',
insecureAuth : true
});
Сейчас он работает нормально.
Ответ 2
На данный момент версия 8.0 - это способ изменения плагина. Используйте этот пример:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'
Ответ 3
![enter image description here]()
Переконфигурируйте метод аутентификации, там вы выбираете поддержку пароля устаревшего типа для 5.1
Причина ошибки
* Вы установили последний Mysql 8.0, у него есть другой метод аутентификации. унижение 5.6 или 5.1 - простое решение
Ответ 4
попробуйте более старую версию mysql, например 5.6.40, она использует по умолчанию SHA256_password auth, где новая версия 8.0. использует по умолчанию sha2_password auth, который более безопасен и передает эту ошибку протокола проверки подлинности. Установщик MYSQL 5.6.40
Ответ 5
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '********',
database : 'vod_bill_database',
port : 3308
});
У меня была такая же ошибка, и с тех пор, как я изменил свой порт в phpmyadmin с 3306 до 3308, поэтому здесь мне также пришлось написать порт: 3308, и он начал работать.
Ответ 6
Я последовал за решением. Я добавляю команду: insecureAuth: true Но я не сильно изменился.
Ответ 7
Благодаря @Vinayak Shedgeri, я решил ошибку с переконфигурированием шагов "MySQL Server" с помощью "MySQL Installer". шаги с "MySQL Installer
Ответ 8
чтобы преодолеть эту ошибку, используйте следующий код:
var connectionString = 'mysql://*root:*[email protected]*localhost/*database?charset=utf8_general_ci&timezone=-0700';
var connection= mysql.createConnection(connectionString);
но убедитесь, что вы изменили метки * в connectionString в зависимости от ваших настроек.
Ответ 9
Спасибо @Vinayak Shedgeri это работает нормально