Mise à niveau du client MySQL pour résoudre "Erreur : le client ne prend pas en charge le protocole d'authentification demandé par le serveur"
Lors de la tentative de connexion à une base de données, un message d'erreur indiquant "Le client ne prend pas en charge le protocole d'authentification demandé par le serveur" apparaît souvent. Cette erreur provient de l'incapacité du client à utiliser le protocole d'authentification employé par le serveur. Pour remédier à ce problème, une mise à niveau du client MySQL est nécessaire.
Lorsque cette erreur a été rencontrée, des tentatives initiales ont été faites pour accorder des privilèges à l'utilisateur. Cependant, des erreurs ultérieures ont été rencontrées lors de l'exécution de la commande suivante :
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'mypassword';
Cette erreur est provoquée par l'utilisation d'une version obsolète de MySQL Connector/J (5.1.45 ou version antérieure). MySQL 8 a implémenté un nouveau mécanisme d'authentification (caching_sha2_password) qui n'est pas pris en charge par ces versions.
La solution réside dans la mise à niveau vers MySQL Connector/J 5.1.46 ou version ultérieure. La dernière version au moment de la rédaction est la 8.0.15, qui peut être téléchargée depuis https://dev.mysql.com/downloads/connector/j/. Alternativement, la version correcte peut être spécifiée dans Maven/Gradle.
En mettant à niveau le client MySQL, la compatibilité est assurée avec le dernier protocole d'authentification, éliminant l'erreur « Erreur : le client ne prend pas en charge le protocole d'authentification demandé par 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!