Résoudre les problèmes d'authentification lors de la connexion à MySQL 4.1
Lors de la tentative de connexion à une base de données MySQL hébergée sur bluesql.net, une erreur peut survenir indiquant que mysqlnd ne peut pas se connecter en utilisant l'ancienne authentification. Cette erreur provient de l'arrêt des anciens schémas de mots de passe dans les versions MySQL après 4.1. Bien que les versions plus récentes permettent une compatibilité ascendante, cela peut parfois entraîner des problèmes de connectivité.
Pour résoudre ce problème, vous pouvez vérifier si le serveur est configuré pour utiliser l'ancien schéma de mot de passe en exécutant la requête suivante :
SHOW VARIABLES LIKE 'old_passwords';
S'il renvoie old_passwords,Off, cela implique que le problème peut provenir d'anciennes entrées de mot de passe dans la table user. Le serveur utilisera par défaut l'ancienne routine d'authentification pour ces comptes. Résoudre ce problème nécessite de définir un nouveau mot de passe, ce qui déclenchera l'adoption de la nouvelle routine.
Pour vérifier la routine d'authentification utilisée par un compte particulier, vous pouvez interroger la table mysql.user :
SELECT `User`, `Host`, Length(`Password`) FROM mysql.user;
Cette requête renverra la longueur du mot de passe. Une longueur de 16 indique un ancien mot de passe, tandis que 41 représente un nouveau mot de passe.
Si le mot de passe est obsolète, vous pouvez soit utiliser les outils de gestion MySQL, soit exécuter la requête suivante pour le mettre à jour :
SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword'); FLUSH Privileges;
Assurez-vous de remplacer User et Host par les valeurs obtenues à partir de la requête précédente. Après avoir exécuté cette requête, vérifiez à nouveau la longueur du mot de passe. Il devrait maintenant être 41, permettant à votre client de se connecter avec succès.
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!