Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie behebt man den Fehler „mysqlnd kann mithilfe der Legacy-Authentifizierung keine Verbindung zu MySQL 4.1 herstellen'?

Barbara Streisand
Freigeben: 2024-10-25 06:18:29
Original
400 Leute haben es durchsucht

How to Fix

Fehler: mysqlnd kann mithilfe der Legacy-Authentifizierung keine Verbindung zu MySQL 4.1 herstellen

Bei der Verwendung der Schemata PHP 5.3 und MySQL 5.5 können Entwickler auf Folgendes stoßen Fehler:

Database connection failed: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. 
Nach dem Login kopieren

Diese Fehlermeldung bedeutet, dass mysqlnd, ein nativer MySQL-Treiber, aufgrund eines veralteten Authentifizierungsmechanismus, der in MySQL 4.1 oder früheren Versionen verwendet wird, keine sichere Verbindung herstellen kann.

Beheben des Problems

Um dieses Verbindungsproblem zu beheben, führen Sie die folgenden Schritte aus:

  1. Entfernen oder kommentieren Sie die Einstellung „old_passwords“ in my .cnf:

    Ändern Sie die Konfigurationsdatei my.cnf und suchen Sie die Zeile mit „old_passwords = 1“. Entfernen Sie diese Zeile oder kommentieren Sie sie aus, indem Sie am Anfang ein „#“-Zeichen hinzufügen.

  2. MySQL neu starten:

    Starten Sie den MySQL-Dienst neu Übernehmen Sie die in my.cnf vorgenommenen Änderungen. Dieser Schritt stellt sicher, dass MySQL das neue Passwortformat verwendet. Wenn es übersprungen wird, verwendet MySQL weiterhin das unsichere Format.

  3. Benutzerkennwörter aktualisieren:

    Stellen Sie eine Verbindung zur Datenbank her und führen Sie die folgende Abfrage zur Identifizierung aus Benutzer mit veralteten Passwörtern:

    SELECT user, Length(`Password`) FROM  `mysql`.`user`;
    Nach dem Login kopieren

    Diese Abfrage zeigt Benutzer mit alten (16 Zeichen) und neuen (41 Zeichen) Passwort-Hashes an.

  4. Führen Sie Passwortaktualisierungen durch:

    Benutzer mit 16-stelligen Passwort-Hashes aktualisieren ihre Passwörter mit dem folgenden Befehl:

    UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';
    Nach dem Login kopieren

    Ersetzen Sie „Benutzername“ durch den tatsächlichen Benutzernamen und „Passwort“. ' mit dem gewünschten neuen Passwort.

  5. Flush Privileges:

    Führen Sie abschließend den folgenden Befehl aus, um die aktualisierten Passwörter anzuwenden:

    FLUSH PRIVILEGES;
    Nach dem Login kopieren

Indem Sie diese Schritte ausführen, können Sie das durch die Legacy-Authentifizierung verursachte Verbindungsproblem beheben und mithilfe von mysqlnd eine sichere Verbindung zu MySQL herstellen.

Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „mysqlnd kann mithilfe der Legacy-Authentifizierung keine Verbindung zu MySQL 4.1 herstellen'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!