MySQL-PHP-Inkompatibilität: Den Verbindungsfehler und die Lösung verstehen
Beim Herstellen einer Verbindung zu einem tritt der Fehler „OK-Paket 6 Bytes kürzer als erwartet“ auf Remote-MySQL-Datenbank mit PHP-Version 5.3.0 kann ein rätselhaftes Problem sein. Um dieses Problem zu lösen, ist es wichtig, die zugrunde liegende Ursache zu verstehen und die entsprechende Lösung anzuwenden.
Der Fehler weist auf eine Inkompatibilität zwischen der lokalen PHP-Version und dem Remote-MySQL-Server hin. PHP-Versionen 5.3.0 und höher erfordern, dass MySQL-Konten über Passwörter verfügen, die mithilfe des neuen MySQL-Authentifizierungs-Plugins gehasht werden. Allerdings verwenden ältere MySQL-Versionen wie 5.0.22 möglicherweise noch die alte Authentifizierungsmethode mit 16-stelligen Passwörtern. Diese Diskrepanz führt zu dem Fehler, da PHP 5.3.0 die Antwort vom MySQL-Server nicht richtig interpretiert.
Um dieses Problem zu beheben, gibt es zwei mögliche Lösungen:
Um festzustellen, ob das Konto ein altes 16-stelliges Passwort verwendet, führen Sie die Abfrage aus:
SELECT Length(`Password`), Substring(`Password`, 1, 1) FROM `mysql`.`user` WHERE `user`='username'
Ersetzen Sie auf dem problematischen 5.0.22-Server „Benutzername“ durch das betreffende Konto. Wenn das Ergebnis eine Passwortlänge von 16 anzeigt und das erste Zeichen eine hexadezimale Ziffer (0-9 oder A-F) ist, deutet dies auf ein altes Passwort hin.
Wenn Sie die zugrunde liegende Ursache verstehen und die entsprechende Lösung anwenden, können Sie dies tun Beheben Sie die MySQL-PHP-Inkompatibilität und stellen Sie eine erfolgreiche Verbindung zur Remote-Datenbank her.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „OK-Paket ist 6 Bytes kürzer als erwartet', wenn ich mit PHP 5.3.0 eine Verbindung zu einer entfernten MySQL-Datenbank herstelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!