Mysql
 sql >> Base de données >  >> RDS >> Mysql

Impossible de se connecter à MySQL 4.1+ en utilisant l'ancienne authentification

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