Próbuję połączyć się z serwerem MySQL za pomocą złącza Python. Utworzyłem nowego użytkownika lcherukuri
z wtyczką uwierzytelniającą mysql_native_password
.
Ale dostałem błąd
mysql.connector.errors.NotSupportedError: Wtyczka uwierzytelniająca „caching_sha2_password” nie jest obsługiwana
Czy ktoś może mi pomóc?
import mysql.connector
cnx = mysql.connector.connect(user='lcherukuri', password='password',
host='127.0.0.1',
database='test')
cnx.close()
Odpowiedzi:
Wtykane uwierzytelnianie SHA-2 na buforowanie
Używasz
mysql_native_password
, co nie jest już domyślne. Zakładając, że używasz poprawnej złącze dla danej wersji należy określić tenauth_plugin
argument, kiedy instancji swój obiekt połączeniacnx = mysql.connector.connect(user='lcherukuri', password='password', host='127.0.0.1', database='test', auth_plugin='mysql_native_password')
Z tych samych dokumentów:
źródło
Miałem ten sam problem i przejście
auth_plugin='mysql_native_password'
nie działało, bo przypadkowo zainstalowałemmysql-connector
zamiastmysql-connector-python
(przez pip3). Zostawiam to tutaj na wypadek, gdyby to komuś pomogło.źródło
Na to pytanie jest już tutaj odpowiedź i to rozwiązanie działa.
buforowanie hasła sha2 nie jest obsługiwane mysql
Po prostu spróbuj tego polecenia:
pip install mysql-connector-python
źródło
mysql-connector
jest to przestarzałe. Powinieneś używać,mysql-connector-python
jak pokazano w powyższej odpowiedzi.Żadne z powyższych rozwiązań nie działa dla mnie. Próbowałem i byłem bardzo sfrustrowany, dopóki nie obejrzałem następującego wideo: https://www.youtube.com/watch?v=tGinfzlp0fE
pip uninstall mysql-connector
działa na jakimś komputerze i może nie działać na innym komputerze.Wykonałem następujące czynności:
Problem powoduje łącznik mysql.
pip uninstall mysql-connector
Poniższe mogą nie być potrzebne, ale całkowicie usunąłem oba złącza.
pip uninstall mysql-connector-python
ponownie zainstaluj łącznik mysql-conenct-python.
pip install mysql-connector-python
źródło
mysql-connector-python
aby naprawić problemMam też podobny błąd
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
Prawdopodobnie zainstalowałeś mysql-connector zamiast mysql-connector-python. Więc musisz zainstalować go ponownie dla python3:
pip3 install mysql-connector-python
źródło
Zmodyfikuj szyfrowanie MySQL
ALTER USER 'lcherukuri'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
źródło
Miałem ten sam problem, ale moja rozdzielczość była inna, ponieważ to nie do końca działało.
Znalazłem to na forum GitHub - skopiuj i wklej to do swojego terminala. Nie musisz zmieniać swojego hasła; może być dokładnie to samo.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{NewPassword}';
źródło
Możesz przejść do Settings-> Project-> Project Interpreter i tutaj zainstalować najnowszą wersję pakietu mysql-connector-python. W moim przypadku był to mysql-connector-python 8.0.15.
źródło
Aby mieć trwalsze rozwiązanie bez przechodzenia przez kod i modyfikowania tego, co wymaga modyfikacji: Zgodnie z dokumentacją MySQL 8 , najłatwiejszym sposobem naprawienia tego jest dodanie następującego pliku do pliku d MySQL -> zrestartuj serwer MySQL.
To zadziałało dla mnie!
Jeśli Twoja instalacja MySQL musi obsługiwać klientów w wersji wcześniejszej niż 8.0 i napotkasz problemy ze zgodnością po uaktualnieniu do MySQL 8.0 lub nowszej, najprostszym sposobem rozwiązania tych problemów i przywrócenia kompatybilności z wersji wcześniejszej niż 8.0 jest rekonfiguracja serwera w celu przywrócenia poprzedniej domyślnej wtyczki uwierzytelniającej ( mysql_native_password). Na przykład użyj tych wierszy w pliku opcji serwera:
[mysqld] #add the following file to your MySQLd file default_authentication_plugin=mysql_native_password
źródło
Zainstaluj poniższe polecenie za pomocą wiersza poleceń.
pip install mysql-connector-python
źródło
Posługiwać się
pip install mysql-connector-python
Następnie połącz w ten sposób:
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', )
źródło
Miałem ten sam błąd przez 2 dni, po czym w końcu znalazłem rozwiązanie. Sprawdziłem wszystkie zainstalowane złącza, używając
pip list
i odinstalowałem wszystkie złącza. W moim przypadku były to:Odinstalowałem je za pomocą,
pip uninstall mysql-connector
a na koniec pobrałem i zainstalowałemmysql-connector-python
z oficjalnej strony MySQL i działa dobrze.źródło
pip3 install mysql-connector-python również rozwiązał mój problem. Zignoruj użycie modułu mysql-connector.
źródło
Dla tych, którzy nie mogli pracować, ponieważ najpierw zainstalowali mysql-connector, wykonałem następujące czynności:
1. najpierw na CMD przejdź do ścieżki 'pip'
2. Użyj polecenia „pip list”
3. Zostałyby zainstalowane trzy pakiety, a mianowicie sześć, protobuf i mysql-connector
4. Odinstaluj każdy z nich osobno
5. Teraz na nowo zainstaluj moduł mysql-connector-python
To mi się udało
źródło
Zainstaluj łącznik mysql za pomocą poniższego polecenia.
pip install mysql-connector-python-rf
Użyj polecenia, aby ustawić uprawnienia.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password'; FLUSH PRIVILEGES;
Użyj polecenia python, aby połączyć się z bazą danych mysql
mydb = mysql.connector.connect( host="localhost", user="root", passwd="very_strong_password", auth_plugin='mysql_native_password')
źródło
Ja też napotkałem ten sam problem. Mój problem polegał na tym, że przypadkowo zainstalowałem złą wersję złącza. Usuń aktualnie zainstalowaną wersję z systemu plików (moja ścieżka wygląda następująco: C: \ Program Files \ Python36 \ Lib \ site-packages), a następnie wykonaj polecenie „pip install mysql-connector-python”. To powinno rozwiązać twój problem
źródło
Próbuję rozwiązać ten błąd i ostatecznie zainstalować PyMySQL zamiast biblioteki mysql i działa poprawnie.
dzięki.
źródło
Jeśli szukasz rozwiązania następującego błędu
Rozwiązanie: należy dodać,
--user
jeśli znajdziesz błąd odmowy dostępu.pip install --user mysql-connector-python
wklej to polecenie do cmd i rozwiąż problem
źródło
Miałem prawie identyczny błąd:
Error while connecting to MySQL: Authentication plugin 'caching_sha2_password' is not supported
Rozwiązanie dla mnie było proste:
Moje dane logowania do nazwy użytkownika / hasła bazy danych były nieprawidłowe. Błąd nie opisał problemu, więc pomyślałem, że podzielę się tym na wypadek, gdyby ktoś napotkał to.
źródło
Odinstalowałem mysql-connector (zainstalowałem następujący tutorial na tutorialu w3schools) i zamiast tego zainstalowałem mysql-connector-python. Zadziałało.
źródło
Używając MySql 8, otrzymałem ten sam błąd podczas podłączania mojego kodu do DB, używając pip install mysql-connector-python rozwiązało ten błąd.
źródło