Heim >Backend-Entwicklung >PHP-Tutorial >Warum erhalte ich die Fehlermeldung „Authentifizierungsmethode stimmt nicht überein', wenn ich PHP mit MySQL 8.0 verbinde?

Warum erhalte ich die Fehlermeldung „Authentifizierungsmethode stimmt nicht überein', wenn ich PHP mit MySQL 8.0 verbinde?

Susan Sarandon
Susan SarandonOriginal
2024-12-05 10:58:09560Durchsuche

Why Am I Getting a

PHP mit MySQL 8.0-Fehler: Authentifizierungsmethode stimmt nicht überein

Beim Herstellen einer Verbindung zu einer MySQL-Datenbank von PHP aus kann es sein, dass Benutzer auf den Fehler „SQLSTATE[HY000] [2054] The Vom Server angeforderte Authentifizierungsmethode, die dem Client unbekannt ist.“ Dieses Problem entsteht aufgrund einer Diskrepanz zwischen der von MySQL verwendeten Authentifizierungsmethode und der von der Clientanwendung erwarteten Methode.

Ursache:

MySQL 8.0 führte ein Standardauthentifizierungs-Plugin ein namens caching_sha2_password, das von älteren PHP-Versionen oder einigen Client-Anwendungen nicht nativ unterstützt wird. Standardmäßig erwarten Anwendungen eine Authentifizierung mit einer passwortbasierten Methode, während MySQL 8.0 die Verwendung des Plugins caching_sha2_password erfordert.

Lösung:

Um den Fehler zu beheben, Sie müssen die von MySQL verwendete Authentifizierungsmethode ändern, damit sie mit der von Ihrer Anwendung erwarteten Methode übereinstimmt. Befolgen Sie diese Schritte:

  1. Melden Sie sich als Root-Benutzer bei MySQL an.
  2. Führen Sie den folgenden Befehl aus, um die Authentifizierungsmethode für den Root-Benutzer in „mysql_native_password“ zu ändern:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Ersetzen Sie „Passwort“ durch das Root-Passwort.

  1. Wenn Ihr Wenn die Anwendung einen anderen Benutzer verwendet, um eine Verbindung zur Datenbank herzustellen, ersetzen Sie „root“ im obigen Befehl durch den entsprechenden Benutzer.
  2. Starten Sie den MySQL-Dienst neu, damit die Änderungen wirksam werden.

Zusätzliche Hinweise:

  • Stellen Sie sicher, dass Ihre PHP-Version die Methode caching_sha2_password unterstützt. Wenn nicht, aktualisieren Sie PHP auf eine kompatible Version.
  • Weitere Informationen zu Authentifizierungsmethoden und Plugins finden Sie in der MySQL-Dokumentation.
  • Wenn das Problem nach dem Ändern der Authentifizierungsmethode weiterhin besteht, stellen Sie sicher, dass der Benutzer verfügt über die erforderlichen Berechtigungen, um auf die Datenbank zuzugreifen.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „Authentifizierungsmethode stimmt nicht überein', wenn ich PHP mit MySQL 8.0 verbinde?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn