edit :Cela ne s'applique que si vous contrôlez le serveur MySQL... si vous ne regardez pas Méthode de hachage de mot de passe MySQL ancienne vs nouvelle
Vérifiez d'abord avec la requête SQL
SHOW VARIABLES LIKE 'old_passwords'
(dans le client de ligne de commande MySQL, HeidiSQL
ou n'importe quel frontal de votre choix) si le serveur est configuré pour utiliser l'ancien schéma de mot de passe par défaut. Si cela renvoie old_passwords,Off
il se trouve que vous avez d'anciennes entrées de mot de passe dans le user
table. Le serveur MySQL utilisera l'ancienne routine d'authentification pour ces comptes. Vous pouvez simplement définir un nouveau mot de passe pour le compte et la nouvelle routine sera utilisée.
Vous pouvez vérifier quelle routine sera utilisée en regardant le mysql.user
table (avec un compte qui a accès à cette table)
SELECT `User`, `Host`, Length(`Password`) FROM mysql.user
Cela renverra 16 pour les comptes avec d'anciens mots de passe et 41 pour les comptes avec de nouveaux mots de passe (et 0 pour les comptes sans mot de passe, vous voudrez peut-être vous en occuper également).
Soit utilisez les outils de gestion des utilisateurs du front-end MySQL (s'il y en a) ou
SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');
FLUSH Privileges;
(remplace User
et Host
avec les valeurs que vous avez obtenues de la requête précédente.) Vérifiez ensuite à nouveau la longueur du mot de passe. Il devrait être 41 maintenant et votre client (par exemple mysqlnd) devrait pouvoir se connecter au serveur.
voir aussi la documentation MySQL :* http://dev. mysql.com/doc/refman/5.0/en/old-client.html
* http://dev.mysql. com/doc/refman/5.0/en/password-hashing.html
* http://dev.mysql. com/doc/refman/5.0/en/set-password.html