Плагин аутентификации 'caching_sha2_password' не поддерживается
Я пытаюсь подключиться к серверу MySQL с разъемом Python. Я создал нового пользователя lcherukuri
с помощью плагина аутентификации mysql_native_password
.
Но я получил ошибку
mysql.connector.errors.NotSupportedError: Плагин аутентификации caching_sha2_password не поддерживается
Кто-нибудь может мне помочь?
import mysql.connector
cnx = mysql.connector.connect(user='lcherukuri', password='password',
host='127.0.0.1',
database='test')
cnx.close()
Ответы
Ответ 1
За кэширование аутентификации SHA-2
В MySQL 8.0 caching_sha2_password
является плагином аутентификации по умолчанию, а не mysql_native_password
.
Вы используете mysql_native_password
, который больше не является значением по умолчанию. Предполагая, что вы используете правильный соединитель для своей версии, вам нужно указать аргумент auth_plugin
при auth_plugin
экземпляра объекта соединения
cnx = mysql.connector.connect(user='lcherukuri', password='password',
host='127.0.0.1', database='test',
auth_plugin='mysql_native_password')
Из тех же документов:
Метод connect()
поддерживает аргумент auth_plugin
который может использоваться для принудительного использования определенного плагина. Например, если сервер настроен на использование sha256_password
по умолчанию и вы хотите подключиться к учетной записи, которая аутентифицируется с помощью mysql_native_password
, либо подключиться с использованием SSL, либо указать auth_plugin='mysql_native_password'
.
Ответ 2
У меня была та же проблема, и передача auth_plugin='mysql_native_password'
не работала, потому что я случайно установил mysql-connector
вместо mysql-connector-python
(через pip3). Просто оставьте это здесь на случай, если это кому-то поможет.
Ответ 3
На этот вопрос уже дан ответ, и это решение работает.
кеширование пароля sha2 не поддерживается mysql
Просто попробуйте эту команду:
pip install mysql-connector-python
Ответ 4
Ни одно из вышеуказанных решений не работает для меня. Я старался и очень расстроился, пока не посмотрел следующее видео:
https://www.youtube.com/watch?v=tGinfzlp0fE
pip uninstall mysql-connector
работает на одном компьютере и может не работать на другом компьютере.
Я сделал следующее:
MySQL-соединитель вызывает проблемы.
pip uninstall mysql-connector
Следующее может не понадобиться, но я полностью удалил оба разъема.
pip uninstall mysql-connector-python
переустановите соединитель mysql-conenct-python.
pip install mysql-connector-python
Ответ 5
Изменить шифрование Mysql
ALTER USER 'lcherukuri'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Ответ 6
У меня была та же самая проблема, но мое решение было другим, потому что это не полностью работало.
Я нашел это на форуме GitHub - скопируйте и вставьте это в свой терминал. Вам не нужно менять свой пароль; это может быть точно так же.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{NewPassword}';
Ответ 7
Вы можете перейти в Settings-> Project-> Project Interpreter и здесь установить последнюю версию пакета mysql-connector-python. В моем случае это был mysql-connector-python 8.0.15.
Ответ 8
Я столкнулся с той же проблемой. Моя проблема заключалась в том, что я случайно установил неправильную версию разъема. Удалите текущую установленную версию из файловой системы (мой путь выглядит следующим образом: C:\Program Files\Python36\Lib\site-packages) и затем выполните "pip install mysql-connector-python". Это должно решить вашу проблему
Ответ 9
Я пытаюсь устранить эту ошибку и, наконец, установить PyMySQL вместо библиотеки MySQL, и она работает правильно.
Благодарю.