Maison > base de données > tutoriel mysql > le corps du texte

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
480 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!

source:php.cn
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