php mysqli_connect: Dem Client unbekannte Authentifizierungsmethode




hash sha (4)

Ich benutze PHP mysqli_connect um mysqli_connect in eine MySQL Datenbank einzuloggen (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:

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 user1 oder user2 anzumelden.

Fehler: mysqli_connect (): Der Server hat eine Authentifizierungsmethode angefordert, die dem Client [caching_sha2_password] in ... unbekannt ist.

Mit mysql_native_password in der MySQL Server-INI-Datei ist es möglich, sich mit user1 anzumelden, aber mit user2 den gleichen Fehler.

Wie kann ich mich mit caching_sha2_password auf dem MySQL-Server anmelden?



Es funktioniert für mich (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 [email protected]'%' IDENTIFIED WITH mysql_native_password BY 'password';


Wenn Sie unter Windows arbeiten und caching_sha2_password überhaupt nicht verwenden caching_sha2_password , können Sie Folgendes tun:

  1. Führen Sie den MySQL-Installer erneut aus
  2. Wählen Sie "Neu konfigurieren" neben "MySQL Server" (das oberste Element).
  3. Klicken Sie auf "Weiter", bis Sie zu "Authentifizierungsmethode" gelangen.
  4. Ändern Sie "Starke Kennwortverschlüsselung zur Authentifizierung verwenden (EMPFOHLEN)" in "Legacy-Authentifizierungsmethode verwenden (MySQL 5.X-Kompatibilität beibehalten)".
  5. Weiter klicken"
  6. Geben Sie unter "Accounts and Roles" Ihr Root-Account-Passwort ein und klicken Sie auf "Check".
  7. Weiter klicken"
  8. Klicken Sie so oft auf "Weiter", bis Sie zu "Konfiguration übernehmen" gelangen.
  9. Klicken Sie auf "Ausführen"

Das Installationsprogramm nimmt alle Konfigurationsänderungen vor, die für Sie erforderlich sind.





sha