Я пытаюсь подключиться к серверу MySQL с помощью соединителя Python. Я создал нового пользователя lcherukuri с плагином аутентификации mysql_native_password.
Но я получил ошибку
mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported
Кто-нибудь может мне помочь?
import mysql.connector
cnx = mysql.connector.connect(user='lcherukuri', password='password',
host='127.0.0.1',
database='test')
cnx.close()
@ Бен, да. MySQL версии 8.0.11
У меня также была эта проблема (в Windows 10), и в конце концов я нашел полезное руководство по адресу: datacamp.com/community/tutorials/mysql-python Как было предложено там, я загрузил mysql.connector из dev.mysql.com/downloads/connector/python и успешно установил его.






За Кэширование подключаемой аутентификации SHA-2
In MySQL 8.0,
caching_sha2_passwordis the default authentication plugin rather thanmysql_native_password.
Вы используете mysql_native_password, который больше не используется по умолчанию. Предполагая, что вы используете правильный разъем для вашей версии, вам нужно указать аргумент auth_plugin при создании экземпляра вашего объекта подключения
cnx = mysql.connector.connect(user='lcherukuri', password='password',
host='127.0.0.1', database='test',
auth_plugin='mysql_native_password')
Из тех же документов:
The
connect()method supports anauth_pluginargument that can be used to force use of a particular plugin. For example, if the server is configured to usesha256_passwordby default and you want to connect to an account that authenticates usingmysql_native_password, either connect using SSL or specifyauth_plugin='mysql_native_password'.
У меня была та же проблема, и передача auth_plugin='mysql_native_password' не сработала, потому что я случайно установил mysql-connector вместо mysql-connector-python (через pip3). Просто оставьте это здесь на случай, если это кому-то поможет.
ЭТО РЕШИТЬ В моем случае! Спасибо!
Спасибо! удалил my-connector и установил mysql-connector-python, и это сработало!
Он решил это и в моем случае. Я следил за w3schools и установил mysql-connector на pip и pip3, но w3schools уже устарел на момент написания этой статьи. Правильный способ сделать это - установить mysql-connector-python на pip и pip3.
Как тогда вы импортировали библиотеку? это как «импорт mysql-connector-python» или «импорт mysql.connector». Могли бы мы использовать точку?
У меня было это некоторое время назад, поэтому я точно не помню. но если взглянуть на github.com/mysql/mysql-connector-python, это, вероятно, «import mysql.connector». обратите внимание, что если вы удалите "mysql-connector", у вас не будет риска импортировать не то.
Ага, не забудьте сначала удалить другой. : D
Эй, у меня была такая же проблема, и ваше решение вроде сработало, теперь оно дает эту ошибку 1045 (ниже), когда я запускаю программу. Есть идеи, почему? 1045 (28000): доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: ДА)
@suyan, может быть, на самом деле комбинация имени пользователя и пароля неверна?
О чувак!! это спасает мне жизнь
На этот вопрос здесь уже дан ответ, и это решение работает.
кеширование пароля sha2 не поддерживается mysql
Просто попробуйте эту команду:
pip install mysql-connector-python
Обратите внимание, что mysql-connector устарел. Вы должны использовать mysql-connector-python, как показано в ответе выше.
"pip install mysql-connector-python" решает мою проблему. Большое спасибо.
У меня была такая же проблема, и решение, приведенное выше, вроде сработало, теперь оно дает эту ошибку 1045 (ниже), когда я запускаю программу. Есть идеи, почему? 1045 (28000): доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: ДА)
Вы можете перейти в Настройки-> Проект-> Интерпретатор проекта и здесь установить последнюю версию пакета mysql-connector-python. В моем случае это был mysql-connector-python 8.0.15.
Я столкнулся с той же проблемой. Моя проблема заключалась в том, что я случайно установил не ту версию разъема. Удалите текущую установленную версию из вашей файловой системы (мой путь выглядит так: C: \ Program Files \ Python36 \ Lib \ site-packages), а затем выполните "pip install mysql-connector-python". Это должно решить вашу проблему
Ни одно из вышеперечисленных решений не работает для меня. Я пытался и очень расстраивался, пока не посмотрел следующее видео: https://thewikihow.com/video_tGinfzlp0fE
pip uninstall mysql-connector работает на одном компьютере и может не работать на другом компьютере.
Я сделал следующее:
pip uninstall mysql-connector
pip uninstall mysql-connector-python
pip install mysql-connector-python
Отлично, я следил за ответами aupriya и ozgeneral, и они оба работали. Но я также считаю полезным следовать вашим инструкциям, чтобы полностью удалить mysql-connector, а затем установить mysql-connector-python.
Ваше решение помогло :), так как я обновился с mysql 5.7 до mysql 8.0, и мне пришлось переустановить mysql-connector-python, чтобы решить проблему
Изменить шифрование Mysql
ALTER USER 'lcherukuri'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
У меня была такая же проблема, но мое решение было другим, потому что это не сработало полностью.
Я нашел это на форуме GitHub - скопируйте и вставьте в свой терминал. Вам не нужно менять свой пароль; это может быть то же самое.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{NewPassword}';
Я пытаюсь устранить эту ошибку и, наконец, установить PyMySQL вместо библиотеки mysql и он работает правильно.
Благодарю.
Если вы ищете решение следующей ошибки
ERROR: Could not install packages due to an EnvironmentError: [WinError 5] Acces s is denied: 'D:\softwares\spider\Lib\site-packages\libmysql.dll' Consider using the
--useroption or check the permissions.
Решение:
Вам следует добавить --user, если вы обнаружите ошибку отказа в доступе.
pip install --user mysql-connector-python
вставьте эту команду в cmd и решите свою проблему
Чтобы иметь более постоянное решение, не просматривая ваш код и не изменяя то, что нужно изменить: Согласно Документация MySQL 8, самый простой способ исправить это - добавить следующее в ваш d-файл MySQL -> перезапустить сервер MySQL.
Это сработало для меня!
Если ваша установка MySQL должна обслуживать клиентов до версии 8.0 и вы столкнулись с проблемами совместимости после обновления до MySQL 8.0 или выше, самый простой способ решить эти проблемы и восстановить совместимость до версии 8.0 - это перенастроить сервер для возврата к предыдущему плагину аутентификации по умолчанию ( mysql_native_password). Например, используйте эти строки в файле опций сервера:
[mysqld]
#add the following file to your MySQLd file
default_authentication_plugin=mysql_native_password
Пожалуйста, установите приведенную ниже команду с помощью командной строки.
pip install mysql-connector-python

У меня была почти такая же ошибка:
Error while connecting to MySQL: Authentication plugin 'caching_sha2_password' is not supported
Решение для меня было простым:
Мое имя пользователя / пароль в базе данных были неверными. Ошибка не описывала проблему, поэтому я подумал, что поделюсь ею, если кто-то еще столкнется с ней.
Я удалил mysql-connector (я установил следующее руководство по w3schools tutorial) и вместо этого установил mysql-connector-python. Это сработало.
Я столкнулся с одной и той же ошибкой в течение 2 дней, затем, наконец, я нашел решение. Я проверил все установленные разъемы с помощью pip list и удалил все разъемы. В моем случае это были:
Удалил их с помощью pip uninstall mysql-connector и, наконец, загрузил и установил mysql-connector-python из Официальный сайт MySQL, и он работает хорошо.
Установите соединитель mysql, используя команду ниже.
pip install mysql-connector-python-rf
Используйте команду, чтобы установить привилегии.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY
'very_strong_password';
FLUSH PRIVILEGES;
Используйте команду python для подключения к базе данных mysql
mydb = mysql.connector.connect(
host = "localhost",
user = "root",
passwd = "very_strong_password",
auth_plugin='mysql_native_password')
У меня тоже была похожая ошибка
File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mysql\connector\authentication.py", line 191, in get_auth_plugin
"Authentication plugin '{0}' is not supported".format(plugin_name))
mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported
Вероятно, вы установили mysql-connector вместо mysql-connector-python. Поэтому вам нужно снова установить его для python3:
pip3 install mysql-connector-python
Используя MySql 8, я получил ту же ошибку при подключении моего кода к БД, используя pip install mysql-connector-python, который решил эту ошибку.
pip3 install mysql-connector-python тоже решил мою проблему. Игнорировать использование модуля mysql-connector.
Используйте pip install mysql-connector-python
Затем подключайтесь так:
import mysql.connector
mydb = mysql.connector.connect(
host = "localhost", #hostname
user = "Harish", # the user who has privilege to the db
passwd = "Harish96", #password for user
database = "Factdb", #database name
auth_plugin = 'mysql_native_password',
)
Для тех, у кого не получилось, потому что они сначала установили mysql-connector, я сделал следующее:
1. Сначала на CMD перейдите по пути 'pip'
2. С помощью команды pip list
3. Было бы установлено три пакета, а именно шесть, protobuf и mysql-connector.
4.Установите каждый из них по отдельности
5. Теперь заново установите модуль mysql-connector-python.
Это сработало для меня
pip install -U mysql-connector-python, это сработало для меня, если вы уже установили mysql-connector-python, а затем следуйте https://stackoverflow.com/a/50557297/6202853 этому ответу