Maison > développement back-end > tutoriel php > Pourquoi est-ce que j'obtiens une erreur « Incompatibilité de méthode d'authentification » lors de la connexion de PHP à MySQL 8.0 ?

Pourquoi est-ce que j'obtiens une erreur « Incompatibilité de méthode d'authentification » lors de la connexion de PHP à MySQL 8.0 ?

Susan Sarandon
Libérer: 2024-12-05 10:58:09
original
632 Les gens l'ont consulté

Why Am I Getting a

Erreur PHP avec MySQL 8.0 : incompatibilité de méthode d'authentification

Lors de la connexion à une base de données MySQL depuis PHP, les utilisateurs peuvent rencontrer l'erreur "SQLSTATE[HY000] [2054] The méthode d'authentification demandée par le serveur inconnue du client." Ce problème est dû à une inadéquation entre la méthode d'authentification utilisée par MySQL et la méthode attendue par l'application client.

Cause :

MySQL 8.0 a introduit un plugin d'authentification par défaut appelé caching_sha2_password, qui n'est pas supporté nativement par les anciennes versions de PHP ou par certaines applications clientes. Par défaut, les applications s'attendent à s'authentifier à l'aide d'une méthode basée sur un mot de passe, tandis que MySQL 8.0 nécessite l'utilisation du plugin caching_sha2_password.

Solution :

Pour résoudre l'erreur, vous devez modifier la méthode d'authentification utilisée par MySQL pour qu'elle corresponde à la méthode attendue par votre application. Suivez ces étapes :

  1. Connectez-vous à MySQL en tant qu'utilisateur root.
  2. Exécutez la commande suivante pour modifier la méthode d'authentification de l'utilisateur root en mysql_native_password :
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Copier après la connexion

Remplacez « mot de passe » par le mot de passe root.

  1. Si votre application utilise un utilisateur différent pour se connecter à la base de données, remplacez « root » dans la commande ci-dessus par l'utilisateur approprié.
  2. Redémarrez le service MySQL pour que les modifications prennent effet.

Remarques supplémentaires :

  • Assurez-vous que votre version PHP prend en charge la méthode caching_sha2_password. Sinon, mettez à jour PHP vers une version compatible.
  • Référez-vous à la documentation MySQL pour plus d'informations sur les méthodes d'authentification et les plugins.
  • Si le problème persiste après avoir modifié la méthode d'authentification, assurez-vous que l'utilisateur dispose des autorisations nécessaires pour accéder à la 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 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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal