Heim > Datenbank > MySQL-Tutorial > Warum gibt MySQL einen Remoteverbindungsfehler „Unbekannte Authentifizierungsmethode' aus?

Warum gibt MySQL einen Remoteverbindungsfehler „Unbekannte Authentifizierungsmethode' aus?

Barbara Streisand
Freigeben: 2024-11-07 09:11:02
Original
753 Leute haben es durchsucht

Why Does MySQL Throw an

MySQL-Remoteverbindungsfehler: „Unbekannte Authentifizierungsmethode“

Beim Versuch, von einem lokalen Computer aus eine Remoteverbindung zu einem MySQL-Server herzustellen, Möglicherweise tritt der folgende Fehler auf:

Warning: PDO::__construct(): The server requested authentication method unknown to the client [mysql_old_password] in ...

SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
Nach dem Login kopieren

Verstehen des Problems:

Dieser Fehler weist typischerweise auf eine Inkompatibilität zwischen den Passwort-Hashing-Methoden hin, die vom lokalen und Remote-MySQL verwendet werden Server. MySQL-Versionen vor 4.1 verwendeten eine 16-Byte-Passwort-Hashing-Methode, während Versionen 4.1 und höher eine sicherere 41-Byte-Hashing-Methode verwendeten. Wenn der lokale MySQL-Server die alte Hashing-Methode verwendet, der Remote-Server jedoch die neue, schlägt der Verbindungsversuch mit dem Fehler „Unbekannte Authentifizierungsmethode“ fehl.

Behebung des Problems:

Um dieses Problem zu beheben, müssen Sie das Passwort auf dem Remote-MySQL-Server aktualisieren, um das neue 41-Byte-Hashing-Format zu verwenden. So geht's:

  1. Mit dem Remote-MySQL-Server verbinden:

    mysql -u [username] -p[password]
    Nach dem Login kopieren
  2. Aktualisieren das Passwort:

    ALTER USER [username] IDENTIFIED BY '[new_password]';
    Nach dem Login kopieren
  3. Berechtigungen erteilen:

    Stellen Sie sicher, dass der Benutzer über die erforderlichen Berechtigungen für den Zugriff auf die Datenbank verfügt:

    GRANT ALL PRIVILEGES ON [database_name].* TO [username]@'local_ip_address';
    Nach dem Login kopieren
  4. Erneut verbinden:

    Versuchen Sie, mit dem aktualisierten Passwort eine Verbindung zum Remote-MySQL-Server herzustellen:

    $dsn = 'mysql:host=184.173.209.193;dbname=my_db_name';
    $options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
    );
    
    try {
        $online_dbh = new PDO($dsn, 'myusername', 'new_password', $options);
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        echo "Success!";
    } catch (PDOException $e) {
        echo $e->getMessage();
    }
    Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum gibt MySQL einen Remoteverbindungsfehler „Unbekannte Authentifizierungsmethode' aus?. 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