Incompatibilité MySQL PHP : compréhension de l'erreur de connexion et résolution
Rencontre de l'erreur « Paquet OK 6 octets plus courts que prévu » lors de la connexion à un Une base de données MySQL distante avec PHP version 5.3.0 peut être un problème déroutant. Pour résoudre ce problème, il est crucial de comprendre la cause sous-jacente et d'appliquer la solution appropriée.
L'erreur indique une incompatibilité entre la version locale de PHP et le serveur MySQL distant. Les versions PHP 5.3.0 et supérieures exigent que les comptes MySQL aient des mots de passe hachés à l'aide du nouveau plugin d'authentification MySQL. Cependant, les anciennes versions de MySQL comme la 5.0.22 peuvent toujours utiliser l'ancienne méthode d'authentification avec des mots de passe à 16 caractères. Cette divergence conduit à l'erreur car PHP 5.3.0 ne parvient pas à interpréter correctement la réponse du serveur MySQL.
Pour résoudre ce problème, il existe deux solutions possibles :
Pour déterminer si le compte utilise un ancien mot de passe à 16 caractères, exécutez la requête :
SELECT Length(`Password`), Substring(`Password`, 1, 1) FROM `mysql`.`user` WHERE `user`='username'
Sur le serveur problématique 5.0.22, remplacer 'username' par le compte en question. Si le résultat indique une longueur de mot de passe de 16 et que le premier caractère est un chiffre hexadécimal (0-9 ou A-F), cela indique un ancien mot de passe.
En comprenant la cause sous-jacente et en appliquant la solution appropriée, vous pouvez résolvez l'incompatibilité MySQL PHP et établissez une connexion réussie à la base de données distante.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!