Maison  >  Article  >  base de données  >  Voici quelques titres potentiels, en gardant à l’esprit qu’ils doivent se présenter sous la forme d’une question : * **Erreur de connexion MySQL : pourquoi \"mysqlnd ne peut pas se connecter\" se produit-il ?** * **PHP et MySQL : comment procéder

Voici quelques titres potentiels, en gardant à l’esprit qu’ils doivent se présenter sous la forme d’une question : * **Erreur de connexion MySQL : pourquoi \"mysqlnd ne peut pas se connecter\" se produit-il ?** * **PHP et MySQL : comment procéder

DDD
DDDoriginal
2024-10-25 03:53:29754parcourir

Here are a few potential titles, keeping in mind they should be in the form of a question:

* **MySQL Connection Error: Why Does

Erreur de connexion MySQL : résolution du problème « mysqlnd ne peut pas se connecter »

Lorsque vous essayez de vous connecter à MySQL, vous pouvez rencontrer le message d'erreur : " mysqlnd ne peut pas se connecter à MySQL 4.1 en utilisant l'ancienne authentification non sécurisée." Cette erreur est due à une inadéquation entre les méthodes de hachage de mot de passe utilisées par le serveur MySQL et le mécanisme d'authentification utilisé par le pilote PHP MySQL, mysqlnd.

Solution

Pour Pour résoudre cette erreur, vous devez mettre à jour la méthode de hachage du mot de passe MySQL vers le nouveau format plus sécurisé. Cela implique de modifier le fichier de configuration MySQL (my.cnf) comme suit :

  1. Supprimer ou commenter "old_passwords = 1":
    Localiser la ligne "old_passwords = 1" " dans le fichier my.cnf et supprimez-le ou commentez-le en plaçant un préfixe "#" devant lui.
  2. Redémarrez MySQL :
    Redémarrez MySQL pour appliquer le modifications de configuration. Cela garantit que MySQL utilisera la nouvelle méthode de hachage de mot de passe à l'avenir.
  3. Définissez de nouveaux mots de passe pour les utilisateurs concernés :
    Connectez-vous à la base de données MySQL et exécutez la requête suivante pour identifier les utilisateurs avec des mots de passe à l'ancien format :

    <code class="sql">SELECT user, Length(`Password`) FROM  `mysql`.`user`;</code>

    Pour chaque utilisateur concerné, mettre à jour le mot de passe à l'aide de la fonction PASSWORD() :

    <code class="sql">UPDATE mysql.user SET Password = PASSWORD('new_password') WHERE user = 'affected_username';</code>
  4. Flush Privileges :
    Après la mise à jour des mots de passe, videz les privilèges pour refléter les modifications :

    <code class="sql">FLUSH PRIVILEGES;</code>

Remarque :

  • Assurez-vous d'utiliser un mot de passe fort et sécurisé pour votre compte MySQL.
  • Si vous rencontrez toujours des problèmes, consultez le journal des erreurs PHP pour plus de détails.
  • Reportez-vous à la source article "Comment réparer 'mysqlnd ne peut pas se connecter à MySQL 4.1 en utilisant l'ancienne authentification' sur PHP5.3" pour des conseils supplémentaires et des étapes de dépannage.

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:
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