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

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

Patricia Arquette
Patricia ArquetteOriginal
2024-11-03 15:57:30689Durchsuche

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

Behebung der MySQL-PHP-Inkompatibilität

Beim Versuch, mit PHP 5.3.0 eine Verbindung zu einer Remote-MySQL-Datenbank herzustellen, kann es zu einem besonderen Problem kommen bei Fehlern im Zusammenhang mit der Paketlänge und der alten Authentifizierung. Diese Inkompatibilität tritt auf, wenn eine Verbindung zu einer Datenbank mit MySQL-Version 5.0.22 hergestellt wird, während eine Verbindung zu einer anderen Datenbank mit Version 5.0.45 erfolgreich ist.

Enthüllung der Grundursache

Die zugrunde liegende Ursache dieser Inkompatibilität liegt im Passwort des MySQL-Kontos. Wenn das Passwort eine ältere 16-stellige Zeichenfolge ist, kann die mysqlnd-Erweiterung von MySQL diese nicht verwenden, um eine Verbindung zum MySQL-Server herzustellen.

Problem lösen

An Um dieses Problem zu beheben, gibt es zwei Lösungswege befolgt:

  1. Benutzerpasswort zurücksetzen:

    • Setzen Sie das Passwort für den betroffenen Benutzer mit dem folgenden Befehl zurück:
      SET PASSWORT FÜR 'Benutzername'@'Hostmaske' = PASSWORD('thepassword')
  2. Servereinstellungen prüfen:

    • Überprüfen Sie, ob der Server für die Verwendung oder Erstellung konfiguriert ist alte Passwörter standardmäßig.

Bestimmend Passwortlänge

Um die Länge des Passworts des betroffenen Benutzers zu ermitteln, führen Sie die folgende Abfrage auf dem problematischen MySQL-Server aus:

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

Ersetzen Sie „Benutzername“ durch den tatsächlich verwendeten Benutzernamen die mysql_connect()-Funktion.

Wenn die Abfrage eine Länge von 16 zurückgibt und das erste Zeichen ein „*“ ist, bestätigt es, dass das Passwort vorhanden ist ein alter 16-stelliger Hash. Dies bedeutet, dass das Passwort mit der zuvor genannten Methode zurückgesetzt werden muss.

Durch die Behebung des veralteten Passwortproblems können Sie mit PHP 5.3.0 erfolgreich eine Verbindung zur Remote-MySQL-Datenbank herstellen und so die aufgetretene Inkompatibilität beheben.

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