[mysqld]
# The default authentication plugin to be used when connecting to the server
default_authentication_plugin=caching_sha2_password
#default_authentication_plugin=mysql_native_password
mit caching_sha2_password in der MySQL-Server-INI-Datei ist es überhaupt nicht möglich, sich mit Benutzer1 oder Benutzer2 anzumelden;
Fehler: mysqli_connect(): Die vom Server angeforderte Authentifizierungsmethode ist dem Client unbekannt [caching_sha2_password] in…
mit mysql_native_password in der MySQL-Server-INI-Datei ist es möglich, sich mit Benutzer1 anzumelden, aber mit Benutzer2, derselbe Fehler;
wie kann ich mich mit anmelden caching_sha2_password auf dem mySql-Server?
Unterstützt PDO dies? Ich habe andere Berichte darüber gesehen mysqli.
– Tadman
25. April 2018 um 16:34 Uhr
Die von @黃皓哲 gepostete Antwort sollte als akzeptierte Antwort markiert werden.
– FIL
4. Februar 2019 um 9:26 Uhr
Von der Terminalanmeldung zu mysql mit diesem Befehl: mysql -u root -p Geben Sie dann das Root-Passwort ein und fügen Sie dann den folgenden Befehl ein ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘root’;
– Benutzer3512810
26. März 2021 um 11:52 Uhr
Ich löse das per SQL-Befehl:
ALTER USER 'mysqlUsername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysqlUsernamePassword';
Gute Antwort. Das Problem dabei ist, dass Sie dies möglicherweise jedes Mal tun müssen, wenn Sie einen neuen Benutzer hinzufügen, abhängig von den Servereinstellungen
– Machatität ♦
28. Juni 2018 um 14:18 Uhr
Vielen Dank, ich habe nach einer Möglichkeit gesucht, die neuen Passwort-Hashes in die älteren zu konvertieren (wie das Format user2 in das Format user1 in der Frage), und Ihre Antwort hat genau den Job gemacht
– Buchhalter م
25. Juli 2018 um 18:29 Uhr
Und so endete ein 4-tägiger Kampf, um php-7.2.9/11 dazu zu bringen, gut mit MySQL-8.012 zu spielen. Könnte jemand im PHP-Team davon überzeugt werden, dies in INSTALL im Tarball zu vermerken? Es würde Tausende von Personenstunden in den nächsten ein oder zwei Jahren einsparen.
– Bergmann
12. Oktober 2018 um 16:27 Uhr
@MountainMan Hat mir das Leben gerettet
– Liang
18. November 2018 um 7:31 Uhr
Dies sollte als Workaround-Lösung akzeptiert werden
– Yohanim
29. Januar 2019 um 17:24 Uhr
abeyaz
Ab PHP 7.4 ist dies kein Problem mehr. Unterstützung für caching_sha2 Authentifizierungsmethode wurde zu mysqlnd hinzugefügt.
Derzeit unterstützt die PHP-Mysqli-Erweiterung die neue Caching_sha2-Authentifizierungsfunktion nicht. Sie müssen warten, bis sie ein Update veröffentlichen.
Sie haben PDO nicht erwähnt, vielleicht sollten Sie versuchen, sich mit PDO zu verbinden.
PDO hat das gleiche Problem
– Machatität ♦
18. Juni 2019 um 15:06 Uhr
@gen Basierend auf dieser Fehlersieht so aus, als ob es ab 7.4.2 funktioniert
– Machatität ♦
22. März 2020 um 0:58 Uhr
Ein Upgrade auf php7.4 hat das Problem gelöst. Und ich denke, das ist der beste Ansatz, anstatt die Authentifizierungsmethode zu ändern mysql_native_password wie einige Antworten vermuten lassen.
– ultrasamad
21. Juni 2020 um 17:00 Uhr
Ich verwende Docker (Apache + PHP in einem Container und MySQL in einem anderen Container) und dies hat mein Problem gelöst. Danke!
– Joan Galmés Riera
1. November 2020 um 11:03 Uhr
PHP 7.4.3 hier. Musste umsteigen mysql_native_password damit es funktioniert.
– RaminS
28. Juli 2021 um 0:56 Uhr
Eranda J.
ALTER USER 'mysqlUsername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysqlUsernamePassword';
Anführungszeichen (‘) danach entfernen ALTER USER und behalte das Anführungszeichen (‘) danach mysql_native_password BY
Bei mir funktioniert es auch.
Das war die einzige Lösung, die für mich auf dem Localhost-Server mit dem WAMP-Server funktioniert hat 🙂
– Jodyshop
23. Februar 2020 um 19:23 Uhr
Dies schien das Problem im Homebrew LAMP-Setup meines Mac zu beheben. Hatte dieses Problem jedoch nicht unter Debian.
– Magnus
23. Februar 2020 um 22:07 Uhr
Für die reinen Anfänger, 1) cd /usr/local/mysql/bin 2) ./mysql -u root -p 3) Geben Sie die Codezeile in diesem Beitrag ein
– Jason
26. Februar 2021 um 1:10 Uhr
Wenn Sie Windows verwenden und es nicht verwendet werden kann caching_sha2_password überhaupt kannst du folgendes tun:
Führen Sie das MySQL-Installationsprogramm erneut aus
Wählen Sie “Neu konfigurieren” neben MySQL Server (das oberste Element)
Klicken Sie auf “Weiter”, bis Sie zu “Authentifizierungsmethode” gelangen.
Ändern Sie “Verwenden Sie eine starke Passwortverschlüsselung für die Authentifizierung (EMPFOHLEN)” in “Verwenden Sie eine ältere Authentifizierungsmethode (Beibehaltung der MySQL 5.X-Kompatibilität)
Weiter klicken”
Geben Sie Ihr Root-Konto-Passwort in Konten und Rollen ein und klicken Sie auf „Überprüfen“.
Weiter klicken”
Klicken Sie weiter auf „Weiter“, bis Sie zu „Konfiguration übernehmen“ gelangen.
Klicken Sie auf “Ausführen”
Das Installationsprogramm nimmt alle erforderlichen Konfigurationsänderungen für Sie vor.
Wie viele viele Menschen hatte ich das gleiche Problem. Obwohl der Benutzer auf die Verwendung von mysql_native_password eingestellt ist und ich eine Verbindung über die Befehlszeile herstellen kann, besteht die einzige Möglichkeit, mysqli() zum Verbinden zu bringen, darin, hinzuzufügen
zum [mysqld] Abschnitt von, in meinem Setup auf Ubuntu 19.10, /etc/mysql/mysql.conf.d/mysqld.cnf
Denken Sie auch daran, dass es nicht funktioniert, wenn der Benutzer vor dieser Änderung erstellt wurde. Sie sollten also ZUERST die Standard-Authentifizierung in der Konfiguration festlegen und dann den Benutzer erstellen, um zu arbeiten!
– Oleg Popov
22. November 2019 um 7:21 Uhr
Dies funktionierte unter Ubuntu 20.04 mit MySQL 8.0 und PHP 5.6. Beachten Sie, dass Sie die Tabellen auch dafür auf INNODB setzen müssen
– rubo77
19. April 2021 um 7:30 Uhr
Nachdem ich dies zur Konfiguration hinzugefügt habe, erhalte ich den gleichen Fehler
– Igor
28. Januar um 8:52 Uhr
weegee
Bei mir funktioniert es (PHP 5.6 + PDO / MySQL Server 8.0 / Windows 7 64bit)
Bearbeiten Sie die Datei C:\ProgramData\MySQL\MySQL Server 8.0\my.ini:
Setzen Sie den MySQL-Dienst unter Windows und in der MySQL-Shell zurück …
ALTER USER my_user@'%' IDENTIFIED WITH mysql_native_password BY 'password';
Denken Sie auch daran, dass es nicht funktioniert, wenn der Benutzer vor dieser Änderung erstellt wurde. Sie sollten also ZUERST die Standard-Authentifizierung in der Konfiguration festlegen und dann den Benutzer erstellen, um zu arbeiten!
– Oleg Popov
22. November 2019 um 7:21 Uhr
Dies funktionierte unter Ubuntu 20.04 mit MySQL 8.0 und PHP 5.6. Beachten Sie, dass Sie die Tabellen auch dafür auf INNODB setzen müssen
– rubo77
19. April 2021 um 7:30 Uhr
Nachdem ich dies zur Konfiguration hinzugefügt habe, erhalte ich den gleichen Fehler
– Igor
28. Januar um 8:52 Uhr
Syed Ekram Uddin
Ich habe den folgenden Befehl ausgeführt ALTER USER 'root' @ 'localhost' identified with mysql_native_password BY 'root123'; in der Befehlszeile und starten Sie schließlich MySQL in den lokalen Diensten neu.
keine Leerzeichen hier 'root' @ 'localhost' sollte stattdessen gelesen werden ALTER USER 'root'@'localhost' identified with mysql_native_password BY 'root123';
– d1jhoni1b
12. August 2020 um 6:28 Uhr
9890100cookie-checkphp mysqli_connect: Authentifizierungsmethode dem Client unbekannt [caching_sha2_password]yes
Unterstützt PDO dies? Ich habe andere Berichte darüber gesehen
mysqli
.– Tadman
25. April 2018 um 16:34 Uhr
Die von @黃皓哲 gepostete Antwort sollte als akzeptierte Antwort markiert werden.
– FIL
4. Februar 2019 um 9:26 Uhr
Von der Terminalanmeldung zu mysql mit diesem Befehl: mysql -u root -p Geben Sie dann das Root-Passwort ein und fügen Sie dann den folgenden Befehl ein ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘root’;
– Benutzer3512810
26. März 2021 um 11:52 Uhr