Remote-MySQL-Verbindung schlägt mit „Unbekannte Authentifizierungsmethode“ fehl
Beim Versuch, eine Remote-Verbindung zu einem MySQL-Server herzustellen, wird die gefürchtete Meldung „unbekannt“ angezeigt Es kann ein Fehler bei der Authentifizierungsmethode auftreten. Dieses Problem tritt auf, wenn der Authentifizierungsmechanismus des Servers nicht mit dem des Clients kompatibel ist.
In diesem speziellen Fall trat der Fehler auf, wenn eine Verbindung von einem lokalen Computer (MySQL-Version 5.5.27) zu einem Remote-Server (MySQL-Version 5.5.5) hergestellt wurde .23). Die zugrunde liegende Ursache war die Inkompatibilität zwischen den von den beiden Servern verwendeten Passwort-Hash-Methoden.
Behebung der Inkompatibilität
Die Lösung für dieses Problem besteht darin, den Passwort-Hash zu aktualisieren Der Server muss mit der vom Client verwendeten Methode übereinstimmen. In diesem Fall geht es um die Aktualisierung auf das neuere 41-Byte-Passwortformat, das von MySQL 4.1 und höher verwendet wird.
Aktualisierung des Passwort-Hash
ALTER USER 'yourusername'@'%' IDENTIFIED BY 'new_password';
wobei „yourusername“ Ihr MySQL-Benutzername und „new_password“ Ihr neues Passwort ist.
FLUSH PRIVILEGES;
Starten Sie den MySQL-Server neu, um sicherzustellen, dass die Änderungen übernommen werden Effekt.
Client-Code ändern
Sobald das Passwort aktualisiert wurde, ändern Sie Ihren Verbindungscode wie folgt:
$dsn = 'mysql:host=184.173.209.193;dbname=my_db_name;charset=utf8'; $options = array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', PDO::MYSQL_ATTR_DIRECT_QUERY => true ); try { $online_dbh = new PDO($dsn, 'myusername', 'new_password', $options); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Congratulations!"; } catch (PDOException $e) { echo $e->getMessage(); }
PDO einstellen:: MYSQL_ATTR_DIRECT_QUERY auf „true“ zwingt PDO dazu, die sicherere Verbindungsmethode zu verwenden, wodurch das Authentifizierungsproblem behoben wird.
Das obige ist der detaillierte Inhalt vonWarum schlägt meine Remote-MySQL-Verbindung mit „Unbekannte Authentifizierungsmethode“ fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!