Atténuation de "mysqli_connect : méthode d'authentification inconnue du client [caching_sha2_password]" en PHP
Lors de l'utilisation de mysqli_connect de MySQL pour s'authentifier auprès d'une base de données locale , vous pouvez rencontrer l'erreur énigmatique "mysqli_connect() : Le serveur a demandé une méthode d'authentification inconnue du client [caching_sha2_password]." Cette erreur résulte d'une incompatibilité entre le plugin d'authentification utilisé par le serveur et celui attendu par le client.
Le fichier ini du serveur MySQL dicte le plugin d'authentification par défaut utilisé pour les connexions au serveur. Par défaut, ce paramètre est configuré sur « caching_sha2_password », indiquant que le serveur privilégie la méthode d'authentification caching_sha2_password. Dans votre cas, votre serveur a été configuré en conséquence.
À l'inverse, votre code PHP tente de se connecter en utilisant des méthodes d'authentification héritées, comme la méthode "mysql_native_password". Cette incompatibilité provoque l'échec de l'authentification et entraîne l'erreur susmentionnée.
Résolution
Pour résoudre ce problème, vous pouvez modifier la méthode d'authentification utilisée par le code PHP pour qu'elle corresponde le paramètre par défaut du serveur. Alternativement, vous pouvez modifier le fichier ini du serveur MySQL pour spécifier un plugin d'authentification compatible avec le code PHP. Voici quelques solutions potentielles :
Activez le plugin mysql_native_password sur le serveur MySQL :
Modifiez le code PHP pour utiliser le plugin caching_sha2_password :
Vous pouvez également basculer la méthode d'authentification de l'utilisateur MySQL sur mysql_native_password à l'aide des commandes SQL :
Modifier l'utilisateur existant :
Créez un nouvel utilisateur avec mysql_native_password :
En implémentant ces solutions, vous pouvez réconcilier les méthodes d'authentification utilisées par le serveur MySQL et le client PHP , vous permettant d'établir avec succès des connexions à votre base de données.
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!