Heim >Datenbank >MySQL-Tutorial >Wie behebe ich einen MySQL 8.0-Authentifizierungsfehler: Nichtübereinstimmung des Client-Protokolls in Node.JS?

Wie behebe ich einen MySQL 8.0-Authentifizierungsfehler: Nichtübereinstimmung des Client-Protokolls in Node.JS?

DDD
DDDOriginal
2024-12-31 06:32:21371Durchsuche

How to Fix MySQL 8.0 Authentication Error: Client Protocol Mismatch in Node.JS?

MySQL 8.0-Authentifizierungsfehler: Client-Protokoll stimmt nicht überein

Viele Benutzer stoßen auf einen Fehler, wenn sie versuchen, eine Verbindung mit MySQL 8.0 herzustellen Node.JS:

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

Lösung

Um dieses Problem zu beheben, führen Sie die folgenden Befehle in der MySQL Workbench aus:

  • ALTER BENUTZER 'root'@'localhost' IDENTIFIZIERT MIT mysql_native_password BY 'password';
  • Flush-Berechtigungen;

Stellen Sie sicher, dass Sie „root“, „localhost“ und „password“ durch Ihren spezifischen Benutzer, Host und Ihr Passwort ersetzen.

Wenn die obige Methode fehlschlägt, versuchen Sie, den ersten Befehl ohne Einbeziehung auszuführen @'localhost'.

Erklärung

MySQL 8.0 führte eine Standardauthentifizierungsmethode von caching_sha2_password ein, die von älteren MySQL-Clientversionen nicht unterstützt wird. Durch Aktualisieren der Authentifizierungsmethode des Benutzers auf mysql_native_password kann sich der Client erfolgreich beim Server authentifizieren.

Zusätzliche Hinweise

  • Wenn Sie keine Verbindung herstellen können Um über den Root-Benutzer eine Verbindung zur MySQL Workbench herzustellen, müssen Sie möglicherweise das Root-Passwort wie folgt zurücksetzen Schritte:

    • Stoppen Sie den MySQL-Dienst.
    • Starten Sie den MySQL-Dienst mit der Option --skip-grant-tables.
    • Stellen Sie eine Verbindung zu MySQL her Server als Root-Benutzer ohne Passwort.
    • Setzen Sie das Root-Passwort mit dem folgenden Befehl zurück: SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
    • Starten Sie den MySQL-Dienst neu.
  • Wenn Sie auf andere Probleme stoßen, konsultieren Sie die folgenden Ressourcen:

    • MySQL-Dokumentation: https://dev.mysql.com/doc/refman/5.5/en/old-client.html
    • GitHub-Problem: https://github.com/mysqljs/mysql/issues/1507

Das obige ist der detaillierte Inhalt vonWie behebe ich einen MySQL 8.0-Authentifizierungsfehler: Nichtübereinstimmung des Client-Protokolls in Node.JS?. 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