Heim >Datenbank >MySQL-Tutorial >Warum kann ich mit PHP 5.3.0 keine Verbindung zu meiner MySQL-Datenbank herstellen?
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:
Benutzerpasswort zurücksetzen:
Servereinstellungen prüfen:
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!