Maison >base de données >tutoriel mysql >Pourquoi mon client MySQL ne parvient-il pas à se connecter et comment puis-je corriger l'erreur « Le client ne prend pas en charge le protocole d'authentification » ?
Erreur : incompatibilité entre les protocoles d'authentification du client et du serveur MySQL
Lors de l'établissement d'une connexion à une base de données MySQL, vous pouvez rencontrer l'erreur suivante : "Le client ne prend pas en charge le protocole d'authentification demandé par le serveur ; envisagez de mettre à niveau le client MySQL." Cette erreur est due à une incompatibilité entre le protocole d'authentification pris en charge par votre client MySQL et celui requis par le serveur.
Enquête et résolution
Votre tentative initiale de résolution le problème en accordant des privilèges et en mettant à jour le mot de passe a échoué. L'erreur que vous avez reçue ("ERROR 1064") indique une erreur de syntaxe dans votre instruction SQL. L'instruction SQL que vous avez utilisée, qui inclut "IDENTIFIED BY 'mypassword'", n'est pas compatible avec MySQL 8.0 ou version ultérieure.
La solution
La cause première du problème La non-concordance du protocole d'authentification est que vous utilisez une version obsolète de la bibliothèque MySQL Connector/J. MySQL 8 a introduit un nouveau mécanisme d'authentification appelé caching_sha2_password, qui n'est pas pris en charge dans MySQL Connector/J 5.1.45 ou version antérieure.
Pour résoudre ce problème, vous devez effectuer une mise à niveau vers MySQL Connector/J 5.1.46 ou version ultérieure. . La dernière version de la bibliothèque au moment de la rédaction est la 8.0.15. Vous pouvez télécharger la dernière version depuis le site Web MySQL (https://dev.mysql.com/downloads/connector/j/) ou spécifier la version souhaitée dans le système de gestion des dépendances de votre projet (par exemple, Maven ou Gradle).
Une fois que vous avez mis à niveau la bibliothèque MySQL Connector/J, vous devriez pouvoir établir une connexion réussie au serveur MySQL sans rencontrer l'erreur de protocole d'authentification.
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!