Ich versuche, eine Verbindung zu einem MySQL-Server mit Python-Connector herzustellen. Ich habe lcherukuri
mit dem Authentifizierungs-Plugin einen neuen Benutzer erstellt mysql_native_password
.
Aber ich habe den Fehler bekommen
mysql.connector.errors.NotSupportedError: Das Authentifizierungs-Plugin 'caching_sha2_password' wird nicht unterstützt
Kann mir jemand helfen?
import mysql.connector
cnx = mysql.connector.connect(user='lcherukuri', password='password',
host='127.0.0.1',
database='test')
cnx.close()
Antworten:
Per Caching SHA-2 Pluggable Authentication
Sie verwenden
mysql_native_password
, was nicht mehr die Standardeinstellung ist. Angenommen, Sie verwenden den richtigen Connector für Ihre Version , müssen Sie dasauth_plugin
Argument angeben , wenn Sie Ihr Verbindungsobjekt instanziierencnx = mysql.connector.connect(user='lcherukuri', password='password', host='127.0.0.1', database='test', auth_plugin='mysql_native_password')
Aus denselben Dokumenten:
quelle
Ich hatte das gleiche Problem und das Übergeben
auth_plugin='mysql_native_password'
funktionierte nicht, weil ich versehentlichmysql-connector
stattmysql-connector-python
(über pip3) installiert habe. Lassen Sie dies einfach hier, falls es jemandem hilft.quelle
Diese Frage ist hier bereits beantwortet und diese Lösung funktioniert.
Das Zwischenspeichern des sha2-Passworts wird von MySQL nicht unterstützt
Versuchen Sie einfach diesen Befehl:
pip install mysql-connector-python
quelle
mysql-connector
veraltet ist. Sie solltenmysql-connector-python
wie in der obigen Antwort gezeigt verwenden.Keine der oben genannten Lösungen funktioniert für mich. Ich habe es versucht und war sehr frustriert, bis ich das folgende Video gesehen habe: https://www.youtube.com/watch?v=tGinfzlp0fE
pip uninstall mysql-connector
Arbeiten Sie auf einem Computer und es funktioniert möglicherweise nicht auf einem anderen Computer.Ich habe folgendes gemacht:
Der MySQL-Connector verursacht ein Problem.
pip uninstall mysql-connector
Folgendes wird möglicherweise nicht benötigt, aber ich habe beide Stecker vollständig entfernt.
pip uninstall mysql-connector-python
Installieren Sie den mysql-conenct-python-Connector erneut.
pip install mysql-connector-python
quelle
Ich habe auch einen ähnlichen Fehler bekommen
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
Sie haben wahrscheinlich mysql-connector anstelle von mysql-connector-python installiert. Sie müssen es also erneut für python3 installieren:
pip3 install mysql-connector-python
quelle
Ändern Sie die MySQL-Verschlüsselung
ALTER USER 'lcherukuri'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
quelle
Ich hatte das gleiche Problem, aber meine Lösung war anders, weil dies nicht vollständig funktionierte.
Ich habe dies in einem GitHub-Forum gefunden - kopiere es und füge es in dein Terminal ein. Sie müssen Ihr Passwort nicht ändern. es kann genau das gleiche sein.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{NewPassword}';
quelle
Sie können zu Einstellungen-> Projekt-> Projektinterpreter gehen und hier die neueste Version des Pakets mysql-connector-python installieren. In meinem Fall war es MySQL-Connector-Python 8.0.15.
quelle
Um eine dauerhaftere Lösung zu erhalten, ohne Ihren Code durchzugehen und zu ändern, was geändert werden muss: Gemäß der MySQL 8-Dokumentation können Sie dies am einfachsten beheben, indem Sie Ihrer MySQL d-Datei Folgendes hinzufügen -> MySQL-Server neu starten.
Das hat bei mir funktioniert!
Wenn Ihre MySQL-Installation Clients vor 8.0 bedienen muss und nach dem Upgrade auf MySQL 8.0 oder höher Kompatibilitätsprobleme auftreten, können Sie diese Probleme am einfachsten beheben und die Kompatibilität vor 8.0 wiederherstellen, indem Sie den Server so konfigurieren, dass er zum vorherigen Standardauthentifizierungs-Plugin zurückkehrt ( mysql_native_password). Verwenden Sie beispielsweise diese Zeilen in der Serveroptionsdatei:
[mysqld] #add the following file to your MySQLd file default_authentication_plugin=mysql_native_password
quelle
Bitte installieren Sie den folgenden Befehl über die Eingabeaufforderung.
pip install mysql-connector-python
quelle
Verwenden
pip install mysql-connector-python
Dann verbinden Sie sich wie folgt:
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', )
quelle
Ich hatte 2 Tage lang den gleichen Fehler, dann fand ich endlich eine Lösung. Ich habe alle installierten Konnektoren mit
pip list
allen Konnektoren überprüft und deinstalliert. In meinem Fall waren sie:Deinstalliert sie mit
pip uninstall mysql-connector
und schließlich heruntergeladen und installiertmysql-connector-python
von der offiziellen MySQL-Website und es funktioniert gut.quelle
pip3 install mysql-connector-python hat auch mein Problem gelöst. Ignorieren Sie die Verwendung des MySQL-Connector-Moduls.
quelle
Installieren Sie den MySQL-Connector mit dem folgenden Befehl.
pip install mysql-connector-python-rf
Verwenden Sie den Befehl, um die Berechtigungen festzulegen.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password'; FLUSH PRIVILEGES;
Verwenden Sie den Python-Befehl, um eine Verbindung zur MySQL-Datenbank herzustellen
mydb = mysql.connector.connect( host="localhost", user="root", passwd="very_strong_password", auth_plugin='mysql_native_password')
quelle
Für diejenigen, die nicht trainieren konnten, weil sie zuerst den MySQL-Connector installiert haben, habe ich Folgendes getan:
1. Gehen Sie zuerst auf CMD zum Pfad von 'pip'
2.Verwenden Sie den Befehl 'pip list'
3. Es würden drei Pakete installiert, nämlich sechs, protobuf und mysql-connector
4.Deinstallieren Sie jedes einzeln
5. Installieren Sie jetzt das MySQL-Connector-Python-Modul neu
Das hat bei mir geklappt
quelle
Ich bin auch auf das gleiche Problem gestoßen. Mein Problem war, dass ich versehentlich die falsche Connector-Version installiert habe. Löschen Sie Ihre aktuell installierte Version aus Ihrem Dateisystem (mein Pfad sieht folgendermaßen aus: C: \ Programme \ Python36 \ Lib \ site-packages) und führen Sie dann "pip install mysql-connector-python" aus. Dies sollte Ihr Problem lösen
quelle
Ich versuche, diesen Fehler zu beheben und schließlich PyMySQL anstelle der MySQL-Bibliothek zu installieren, und es funktioniert ordnungsgemäß.
Vielen Dank.
quelle
Wenn Sie nach der Lösung des folgenden Fehlers suchen
Die Lösung: Sie sollten hinzufügen,
--user
wenn Sie einen Fehler finden, dem der Zugriff verweigert wurde.pip install --user mysql-connector-python
Fügen Sie diesen Befehl in cmd ein und lösen Sie Ihr Problem
quelle
Ich hatte einen fast identischen Fehler:
Error while connecting to MySQL: Authentication plugin 'caching_sha2_password' is not supported
Die Lösung war für mich einfach:
Mein Datenbank-Benutzername / Passwort war falsch. Der Fehler war nicht beschreibend für das Problem, daher dachte ich, ich würde dies teilen, falls jemand anderes darauf stößt.
quelle
Ich habe mysql-connector deinstalliert (ich habe das folgende Tutorial im w3schools-Tutorial installiert) und stattdessen mysql-connector-python installiert. Es funktionierte.
quelle
Bei Verwendung von MySql 8 wurde beim Verbinden meines Codes mit der Datenbank der gleiche Fehler angezeigt. Bei Verwendung der Pip-Installation mysql-connector-python wurde dieser Fehler behoben.
quelle