Maison >développement back-end >tutoriel php >Comment corriger l'erreur « Méthode d'authentification inconnue [caching_sha2_password] » de MySQL avec mysqli_connect ?

Comment corriger l'erreur « Méthode d'authentification inconnue [caching_sha2_password] » de MySQL avec mysqli_connect ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-13 19:10:11581parcourir

How to Fix MySQL's

Résolution de l'erreur d'authentification MySQL : "Méthode d'authentification inconnue [caching_sha2_password]" avec mysqli_connect

Lorsque vous tentez d'établir une connexion à une base de données à l'aide de mysqli_connect, vous pouvez rencontrer une erreur indiquant " Le serveur a demandé une méthode d'authentification inconnue du client [caching_sha2_password]." Cette erreur résulte d'une incompatibilité entre la méthode d'authentification configurée sur le serveur MySQL et la méthode prise en charge par votre code PHP.

Plus précisément, le fichier ini du serveur MySQL définit default_authentication_plugin sur caching_sha2_password. Ce plugin offre une sécurité renforcée mais nécessite la prise en charge du client pour cette méthode. Cependant, votre code PHP utilise le mécanisme d'authentification par mot de passe natif MySQL par défaut, qui n'est pas compatible avec caching_sha2_password.

Pour résoudre ce problème, vous avez deux options :

Option 1 : Modifier le plugin d'authentification sur MySQL Server

Vous pouvez modifier le default_authentication_plugin dans le fichier ini du serveur MySQL en mysql_native_password. Cela permettra à votre code PHP de se connecter à l'aide de la méthode d'authentification par mot de passe native.

Option 2 : Spécifier la méthode d'authentification dans le code PHP

Vous pouvez également spécifier la méthode d'authentification dans votre code PHP pour qu'elle corresponde la configuration du serveur. Cela peut être fait en utilisant la fonction mysqli_options() avant d'appeler mysqli_connect().

mysqli_options(mysqli, MYSQLI_OPT_AUTH_PLUGIN, 'caching_sha2_password');

Modification de l'authentification utilisateur

Si aucune des options ci-dessus ne résout le problème, vous devrez peut-être modifier la méthode d'authentification pour l'utilisateur spécifique qui tente de se connecter. Cela peut être fait à l'aide de la commande SQL suivante :

ALTER USER 'username'@'hostname' IDENTIFIED WITH mysql_native_password BY 'new_password';

En implémentant ces solutions, vous pouvez réussir à établir une connexion à MySQL à l'aide de mysqli_connect malgré la méthode d'authentification par défaut définie sur le serveur.

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