![php mysqli_connect: Authentifizierungsmethode dem Client unbekannt [caching_sha2_password] 1 php mysqli connect Authentifizierungsmethode dem Client unbekannt caching sha2 password](https://www.viresist.org/wp-content/uploads/php-mysqli_connect-Authentifizierungsmethode-dem-Client-unbekannt-caching_sha2_password.png)
Guti_Haz
Ich verwende php mysqli_connect
zum Login in eine MySQL-Datenbank (alles auf localhost)
<?php
//DEFINE ('DB_USER', 'user2');
//DEFINE ('DB_PASSWORD', 'pass2');
DEFINE ('DB_USER', 'user1');
DEFINE ('DB_PASSWORD', 'pass1');
DEFINE ('DB_HOST', '127.0.0.1');
DEFINE ('DB_NAME', 'dbname');
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if(!$dbc){
die('error connecting to database');
}
?>
dies ist die mysql.user-Tabelle:
![php mysqli_connect: Authentifizierungsmethode dem Client unbekannt [caching_sha2_password] 2 mysql.user-Tabelle](https://www.viresist.org/wp-content/uploads/php-mysqli_connect-Authentifizierungsmethode-dem-Client-unbekannt-caching_sha2_password.jpg)
MySQL-Server-INI-Datei:
[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?
Ich löse das per SQL-Befehl:
ALTER USER 'mysqlUsername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysqlUsernamePassword';
auf die verwiesen wird https://dev.mysql.com/doc/refman/8.0/en/alter-user.html
wenn Sie einen neuen Benutzer erstellen
CREATE USER 'jeffrey'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
auf die verwiesen wird https://dev.mysql.com/doc/refman/8.0/en/create-user.html
das funktioniert bei mir
![php mysqli_connect: Authentifizierungsmethode dem Client unbekannt [caching_sha2_password] 3 1646946848 359 php mysqli connect Authentifizierungsmethode dem Client unbekannt caching sha2 password](https://www.viresist.org/wp-content/uploads/1646946848_359_php-mysqli_connect-Authentifizierungsmethode-dem-Client-unbekannt-caching_sha2_password.png)
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.
Überprüfen Sie den zugehörigen Beitrag von MySQL-Entwicklern: https://mysqlserverteam.com/upgrading-to-mysql-8-0-default-authentication-plugin-considerations/
Sie haben PDO nicht erwähnt, vielleicht sollten Sie versuchen, sich mit PDO zu verbinden.
![php mysqli_connect: Authentifizierungsmethode dem Client unbekannt [caching_sha2_password] 4 1646946848 750 php mysqli connect Authentifizierungsmethode dem Client unbekannt caching sha2 password](https://www.viresist.org/wp-content/uploads/1646946848_750_php-mysqli_connect-Authentifizierungsmethode-dem-Client-unbekannt-caching_sha2_password.png)
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.
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
default-authentication-plugin=mysql_native_password
zum [mysqld] Abschnitt von, in meinem Setup auf Ubuntu 19.10, /etc/mysql/mysql.conf.d/mysqld.cnf
![php mysqli_connect: Authentifizierungsmethode dem Client unbekannt [caching_sha2_password] 5 1646946849 446 php mysqli connect Authentifizierungsmethode dem Client unbekannt caching sha2 password](https://www.viresist.org/wp-content/uploads/1646946849_446_php-mysqli_connect-Authentifizierungsmethode-dem-Client-unbekannt-caching_sha2_password.jpg)
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
:
default_authentication_plugin=mysql_native_password
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';
![php mysqli_connect: Authentifizierungsmethode dem Client unbekannt [caching_sha2_password] 6 php mysqli connect Authentifizierungsmethode dem Client unbekannt caching sha2 password](https://www.viresist.org/wp-content/uploads/php-mysqli_connect-Authentifizierungsmethode-dem-Client-unbekannt-caching_sha2_password.jpeg)
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.
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