Maison > base de données > tutoriel mysql > le corps du texte

Pourquoi ma connexion PHP 5.3.0 à une ancienne base de données MySQL échoue-t-elle avec « paquet OK 6 octets plus court que prévu » ?

Susan Sarandon
Libérer: 2024-11-03 21:30:03
original
673 Les gens l'ont consulté

Why Does My PHP 5.3.0 Connection to an Older MySQL Database Fail with

Problème de compatibilité MySQL PHP

Lors de la connexion à une base de données MySQL distante à partir d'un serveur WAMP local exécutant PHP 5.3.0, une erreur se produit :

Warning: mysql_connect() [function.mysql-connect]: OK packet 6 bytes shorter than expected. PID=5880 in ...
Warning: mysql_connect() [function.mysql-connect]: mysqlnd cannot connect to MySQL 4.1+ using old authentication in ...
Copier après la connexion

Ce problème se manifeste généralement lors de la connexion à une ancienne base de données MySQL (par exemple, version 5.0.22) mais pas à une base de données plus récente (par exemple, version 5.0.45).

Cause :

Le problème survient lorsque le compte MySQL utilisé possède un ancien hachage de mot de passe de 16 caractères.

Solution :

Pour résoudre le problème, réinitialisez le mot de passe du compte problématique afin d'utiliser un format de mot de passe moderne. Exécutez la requête suivante dans un client MySQL :

SET PASSWORD FOR 'username'@'hostmask' = PASSWORD('thepassword');
Copier après la connexion

Informations supplémentaires :

Pour vérifier si le hachage du mot de passe est effectivement ancien, exécutez la requête suivante sur l'ancien Serveur MySQL (version 5.0.22) :

SELECT
  Length(`Password`),
  Substring(`Password`, 1, 1)
FROM
  `mysql`.`user`
WHERE
  `user`='username';
Copier après la connexion

Si le champ 'Longueur' renvoie 16 et que le champ 'Sous-chaîne' renvoie un caractère '*', le hachage du mot de passe est ancien.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal