Heim >Datenbank >MySQL-Tutorial >Warum kann ich mit PHP 5.3.0 keine Verbindung zu meiner Remote-MySQL-Datenbank herstellen?

Warum kann ich mit PHP 5.3.0 keine Verbindung zu meiner Remote-MySQL-Datenbank herstellen?

Susan Sarandon
Susan SarandonOriginal
2024-11-02 17:53:03411Durchsuche

Why Can't I Connect to My Remote MySQL Database With PHP 5.3.0?

MySQL-PHP-Inkompatibilität: Behebung des mysteriösen Fehlers

Beim Herstellen einer Verbindung zu einer entfernten MySQL-Datenbank über PHP 5.3.0 können Benutzer auf ein Rätsel stoßen Fehler, der zu einer fehlgeschlagenen Verbindung führt. Die Warnmeldungen weisen typischerweise auf eine Nichtübereinstimmung der erwarteten Länge des OK-Pakets und einen veralteten Authentifizierungsmechanismus hin.

Bei der Untersuchung wurde festgestellt, dass das zugrunde liegende Problem auf die Passwortlänge des MySQL-Kontos zurückzuführen ist. Wenn das Passwort 16 Zeichen lang ist, handelt es sich wahrscheinlich um einen alten Passwort-Hash, der nicht mit dem von PHP 5.3.0 verwendeten mysqlnd-Treiber kompatibel ist.

Um dieses Problem zu beheben, setzen Sie das Passwort für das betroffene MySQL-Konto mit a zurück Neues. Dies kann durch Ausführen der folgenden SQL-Anweisung erfolgen:

SET PASSWORD FOR 'username'@'hostmask' = PASSWORD('thepassword')

Als mögliche Alternative prüfen Sie, ob der MySQL-Server so konfiguriert ist, dass er standardmäßig alte Passwörter verwendet oder erstellt. Dies kann durch eine Untersuchung der Servereinstellungen überprüft werden. Darüber hinaus liefert die Ausführung der folgenden Abfrage auf dem problematischen Server weitere Erkenntnisse:

SELECT
  Length(`Password`),
  Substring(`Password`, 1, 1)
FROM
  `mysql`.`user`
WHERE
  `user`='username'

Ersetzen Sie „Benutzername“ durch den tatsächlichen Kontonamen, der in mysql_connect() verwendet wird. Die zurückgegebenen Werte geben die Länge und das erste Zeichen des Passworts an und liefern weitere Informationen über die Grundursache des Fehlers.

Das obige ist der detaillierte Inhalt vonWarum kann ich mit PHP 5.3.0 keine Verbindung zu meiner Remote-MySQL-Datenbank herstellen?. 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