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
Libérer: 2024-12-15 08:27:10
original
776 Les gens l'ont consulté

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 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal