Maison >base de données >tutoriel mysql >Comment réparer l'erreur « mysqli_connect : méthode d'authentification inconnue du client [caching_sha2_password] » en PHP ?

Comment réparer l'erreur « mysqli_connect : méthode d'authentification inconnue du client [caching_sha2_password] » en PHP ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-28 07:14:46897parcourir

How to Fix the

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 :

    • Ouvrez le fichier ini du serveur MySQL et localisez le paramètre "default_authentication_plugin".
    • Changez sa valeur en "mysql_native_password."
  • Modifiez le code PHP pour utiliser le plugin caching_sha2_password :

    • Utilisez la fonction mysqli_options() pour définir l'option MYSQLI_OPT_AUTH_PLUGIN sur "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 :

    • Exécutez la commande SQL : ALTER USER 'mysqlUsername'@'localhost' IDENTIFIÉ AVEC mysql_native_password PAR 'mysqlUsernamePassword';
  • Créez un nouvel utilisateur avec mysql_native_password :

    • Exécutez la commande SQL : CRÉER UN UTILISATEUR 'jeffrey'@'localhost' IDENTIFIÉ AVEC mysql_native_password PAR '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!

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