Erreur : mysqlnd Impossible de se connecter à MySQL 4.1 à l'aide de l'authentification héritée
Lors de l'utilisation des schémas PHP 5.3 et MySQL 5.5, les développeurs peuvent rencontrer les problèmes suivants erreur :
Database connection failed: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication.
Ce message d'erreur signifie que mysqlnd, un pilote natif de MySQL, ne parvient pas à établir une connexion sécurisée en raison d'un mécanisme d'authentification obsolète utilisé dans MySQL 4.1 ou des versions antérieures.
Résoudre le problème
Pour résoudre ce problème de connectivité, suivez ces étapes :
Supprimer ou commenter le paramètre « old_passwords » dans mon .cnf :
Modifiez le fichier de configuration my.cnf et localisez la ligne contenant 'old_passwords = 1'. Supprimez cette ligne ou commentez-la en ajoutant un caractère '#' au début.
Redémarrez MySQL :
Redémarrez le service MySQL pour appliquer les modifications apportées dans my.cnf. Cette étape garantit que MySQL utilise le nouveau format de mot de passe. S'il est ignoré, MySQL continuera à utiliser le format non sécurisé.
Mettre à jour les mots de passe utilisateur :
Connectez-vous à la base de données et exécutez la requête suivante pour identifier utilisateurs avec des mots de passe obsolètes :
SELECT user, Length(`Password`) FROM `mysql`.`user`;
Cette requête affichera les utilisateurs avec des hachages de mot de passe anciens (16 caractères) et nouveaux (41 caractères).
Exécuter les mises à jour des mots de passe :
Pour les utilisateurs disposant de hachages de mot de passe à 16 caractères, mettez à jour leurs mots de passe à l'aide de la commande suivante :
UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';
Remplacez « nom d'utilisateur » par le nom d'utilisateur et le « mot de passe » réels. ' avec le nouveau mot de passe souhaité.
Flush Privileges :
Enfin, exécutez la commande suivante pour appliquer les mots de passe mis à jour :
FLUSH PRIVILEGES;
En complétant ces étapes, vous pouvez résoudre le problème de connexion causé par l'authentification héritée et établir une connexion sécurisée à MySQL à l'aide de mysqlnd.
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!