Maison >développement back-end >tutoriel php >Pourquoi mysqli_connect échoue-t-il avec « méthode d'authentification inconnue du client [caching_sha2_password] » et comment puis-je y remédier ?

Pourquoi mysqli_connect échoue-t-il avec « méthode d'authentification inconnue du client [caching_sha2_password] » et comment puis-je y remédier ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-15 08:27:10647parcourir

Why is mysqli_connect Failing with

Surmonter les défis d'authentification dans mysqli_connect

La fonction mysqli_connect facilite les connexions aux bases de données en PHP. Cependant, lorsqu'ils tentent de se connecter à une base de données MySQL à l'aide de l'authentification caching_sha2_password, les utilisateurs peuvent rencontrer des problèmes d'authentification. Cet article explore la cause première et propose une solution à ce problème.

Le problème

Dans l'extrait de code fourni, le paramètre default_authentication_plugin dans le fichier ini du serveur MySQL est défini sur caching_sha2_password. Cette configuration empêche les utilisateurs de s'authentifier avec des noms d'utilisateur qui n'ont pas de mot de passe caching_sha2_password correspondant. En conséquence, le message d'erreur « Le serveur a demandé la méthode d'authentification inconnue du client [caching_sha2_password] » s'affiche.

La solution

Pour résoudre ce problème, vous peut soit :

  • Modifier le plugin_authentication_plugin par défaut paramètre :

    • Définissez-le sur mysql_native_password pour permettre à l'utilisateur1 de se connecter mais pas à l'utilisateur2.
  • Modifier l'authentification de l'utilisateur :

    • Utilisez la commande ALTER USER SQL pour modifiez le mot de passe de l'utilisateur 1 et de l'utilisateur 2 pour qu'il soit compatible avec caching_sha2_password :

      • Pour les utilisateurs existants :

        • ALTER USER 'mysqlUsername'@'localhost' IDENTIFIÉ AVEC mysql_native_password PAR 'mysqlUsernamePassword';
      • Pour les nouveaux utilisateurs :

        • CRÉER UN UTILISATEUR 'jeffrey'@'localhost' IDENTIFIÉ AVEC mysql_native_password PAR 'mot de passe';

Mise en œuvre

Après avoir modifié le paramètre du plugin d'authentification ou les mots de passe des utilisateurs, le code mysqli_connect établira avec succès une connexion à MySQL base de données.

Conclusion

En comprenant le problème d'authentification sous-jacent et en mettant en œuvre l'une des solutions fournies, vous pouvez surmonter l'erreur « méthode d'authentification inconnue du client » lors de l'utilisation mysqli_connect avec l'authentification caching_sha2_password.

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