- Supprimer ou commenter old_passwords =1 dans my.cnf
Redémarrez MySQL. Si vous ne le faites pas, MySQL continuera à utiliser l'ancien format de mot de passe, ce qui signifie que vous ne pouvez pas mettre à jour les mots de passe à l'aide de la fonction de hachage PASSWORD() intégrée.
Les anciens hachages de mot de passe sont de 16 caractères, les nouveaux sont de 41 caractères.
-
Connectez-vous à la base de données et exécutez la requête suivante :
SELECT user, Length(`Password`) FROM `mysql`.`user`;
Cela vous montrera quels mots de passe sont dans l'ancien format, par exemple :
+----------+--------------------+ | user | Length(`Password`) | +----------+--------------------+ | root | 41 | | root | 16 | | user2 | 16 | | user2 | 16 | +----------+--------------------+
Notez ici que chaque utilisateur peut avoir plusieurs lignes (une pour chaque spécification d'hôte différente).
Pour mettre à jour le mot de passe de chaque utilisateur, exécutez la commande suivante :
UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';
Enfin, purgez les privilèges :
FLUSH PRIVILEGES;