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:
Mit dem Remote-MySQL-Server verbinden:
mysql -u [username] -p[password]
Aktualisieren das Passwort:
ALTER USER [username] IDENTIFIED BY '[new_password]';
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';
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!