Maison > base de données > tutoriel mysql > Comment corriger l'erreur « mysqlnd Impossible de se connecter à MySQL 4.1 à l'aide de l'authentification héritée » ?

Comment corriger l'erreur « mysqlnd Impossible de se connecter à MySQL 4.1 à l'aide de l'authentification héritée » ?

Barbara Streisand
Libérer: 2024-10-25 06:18:29
original
529 Les gens l'ont consulté

How to Fix

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. 
Copier après la connexion

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 :

  1. 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.

  2. 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é.

  3. 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`;
    Copier après la connexion

    Cette requête affichera les utilisateurs avec des hachages de mot de passe anciens (16 caractères) et nouveaux (41 caractères).

  4. 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';
    Copier après la connexion

    Remplacez « nom d'utilisateur » par le nom d'utilisateur et le « mot de passe » réels. ' avec le nouveau mot de passe souhaité.

  5. Flush Privileges :

    Enfin, exécutez la commande suivante pour appliquer les mots de passe mis à jour :

    FLUSH PRIVILEGES;
    Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal