Heim  >  Artikel  >  Datenbank  >  Warum gibt MySQL einen Remoteverbindungsfehler „Unbekannte Authentifizierungsmethode“ aus?

Warum gibt MySQL einen Remoteverbindungsfehler „Unbekannte Authentifizierungsmethode“ aus?

Barbara Streisand
Barbara StreisandOriginal
2024-11-07 09:11:02651Durchsuche

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

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]
  2. Aktualisieren das Passwort:

    ALTER USER [username] IDENTIFIED BY '[new_password]';
  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';
  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();
    }

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!

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