Heim  >  Artikel  >  Datenbank  >  Warum schlägt meine Remote-MySQL-Verbindung mit „Unbekannte Authentifizierungsmethode“ fehl?

Warum schlägt meine Remote-MySQL-Verbindung mit „Unbekannte Authentifizierungsmethode“ fehl?

Susan Sarandon
Susan SarandonOriginal
2024-11-10 09:25:02225Durchsuche

Why Does My Remote MySQL Connection Fail with

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

  • Melden Sie sich an Remote-MySQL-Server mit einem Befehlszeilentool wie MySQL Workbench.
  • Führen Sie Folgendes aus Befehl:
ALTER USER 'yourusername'@'%' IDENTIFIED BY 'new_password';

wobei „yourusername“ Ihr MySQL-Benutzername und „new_password“ Ihr neues Passwort ist.

  • Löschen Sie die Berechtigungen, um die Änderungen zu übernehmen:
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!

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