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 ?
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 :
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 :
Pour les nouveaux utilisateurs :
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!