Maison >développement back-end >tutoriel php >Comment corriger l'erreur « Le serveur a demandé la méthode d'authentification inconnue du client » dans MySQL 8.0 avec PHP ?

Comment corriger l'erreur « Le serveur a demandé la méthode d'authentification inconnue du client » dans MySQL 8.0 avec PHP ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-14 05:45:15664parcourir

How to Fix

Erreur MySQL 8.0 : résolution des incohérences d'authentification avec les applications PHP

Les développeurs PHP se connectant aux bases de données MySQL 8.0 peuvent rencontrer l'erreur « L'authentification du serveur a demandé méthode inconnue du client." Cette erreur est généralement causée par une inadéquation entre les méthodes d'authentification utilisées par la base de données MySQL et l'application PHP.

Conflit de méthode d'authentification :

MySQL 8.0 utilise caching_sha2_password comme mot de passe. méthode d'authentification par défaut, alors que de nombreuses applications PHP s'attendent à utiliser une authentification traditionnelle basée sur un mot de passe. Lorsque l'application tente de se connecter à la base de données avec une méthode d'authentification incorrecte, le serveur renvoie l'erreur mentionnée ci-dessus.

Solution :

Pour résoudre ce problème, il Il est nécessaire de modifier la méthode d'authentification utilisée par la base de données MySQL pour qu'elle corresponde à celle attendue par l'application PHP. Ceci peut être réalisé en basculant le plugin d'authentification de la base de données MySQL vers mysql_native_password, qui prend en charge l'authentification par mot de passe.

Étapes pour modifier le plugin d'authentification :

  1. Connexion à MySQL en tant qu'utilisateur root :
mysql -u root -p
  1. Exécutez le code SQL suivant commande pour changer le plugin d'authentification pour l'utilisateur root :
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

Remplacez 'new_password' par un mot de passe sécurisé de votre choix.

  1. Si votre application PHP utilise un utilisateur non root, répétez l'étape 2 pour cet utilisateur, en remplaçant « root » par le nom d'utilisateur approprié.
  2. Redémarrez le service MySQL pour que les modifications soient prises en compte effet.

Ressources supplémentaires :

Pour plus d'informations sur ce sujet, veuillez vous référer aux ressources suivantes :

  • [ Océan numérique : installation MySQL](https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-20-04)
  • [Documentation MySQL : authentification par défaut Plugin](https://dev.mysql.com/doc/refman/8.0/en/server-options.html#sysvar_default_authentication_plugin)

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