Comment résoudre L'impossibilité de charger le plugin d'authentification 'cache le mot de passe sha2' problème

dans eclipse quand j'ai commencé mon application j'ai reçu ceci - ne pouvait pas découvrir le dialecte à utiliser. Java.SQL.SQLException: impossible de charger le plugin d'authentification "caching_sha2_password".

at java.SQL.SQLException: impossible de charger le plugin d'authentification "caching_sha2_password". au COM.mysql.jdbc.La fonction SQLError.createSQLException (SQLError.java:868) au COM.mysql.jdbc.La fonction SQLError.createSQLException (SQLError.java:864) au COM.mysql.jdbc.MysqlIO.procedhandshakewithpluggableauthentication (MysqlIO.java: 1746) au com.mysql.jdbc.MysqlIO.doHandshake (MysqlIO.java:1226) au COM.mysql.jdbc.ConnectionImpl.coreConnect (ConnectionImpl.java: 2191) au COM.mysql.jdbc.ConnectionImpl.connectOneTryOnly (ConnectionImpl.java: 2222) au COM.mysql.jdbc.ConnectionImpl.createNewIO (ConnectionImpl.java: 2017) au com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java: 779) au COM.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java: 47) au au soleil.refléter.NativeConstructorAccessorImpl.newInstance0(Native La méthode) au soleil.refléter.NativeConstructorAccessorImpl.newInstance(Source Inconnue) au soleil.refléter.DelegatingConstructorAccessorImpl.newInstance(Inconnu Source) at at at java.lang.refléter.Constructeur.newInstance(Inconnu Source) at com.mysql.jdbc.Util.handleNewInstance (Util.java: 425) au COM.mysql.jdbc.ConnectionImpl.gettinstance (ConnectionImpl.java:389) à COM.mysql.jdbc.NonRegisteringDriver.connect (NonRegisteringDriver.java: 330) at java.SQL.DriverManager.getConnection (Source inconnue) à at Java.SQL.DriverManager.getConnection (Source inconnue) à at ch.la qualité de service.logback.core.DB.Drivermanagerconnectionssource.getConnection (Drivermanagerconnectionssource.java: 54) au ch.la qualité de service.logback.core.DB.ConnectionSourceBase.discoverConnectionProperties(ConnectionSourceBase.java: 46) au ch.la qualité de service.logback.core.DB.Drivermanagerconnectionssource.start (Drivermanagerconnectionssource.java: 38) au ch.la qualité de service.logback.core.joran.action.Nestedecomplexpropertyia.fin (NestedComplexPropertyIA.java: 161) au ch.la qualité de service.logback.core.joran.le spi.Interprète.callEndAction (interprète.java: 309) au ch.la qualité de service.logback.core.joran.le spi.Interprète.endElement (interprète.java: 193) au ch.la qualité de service.logback.core.joran.le spi.Interprète.endElement (interprète.java: 179) au ch.la qualité de service.logback.core.joran.le spi.EventPlayer.play (EventPlayer.java: 62) au ch.la qualité de service.logback.core.joran.Généricconfigurator.doConfigure(GenericConfigurator.java: 165) au ch.la qualité de service.logback.core.joran.Généricconfigurator.doConfigure(GenericConfigurator.java: 152) au ch.la qualité de service.logback.core.joran.Généricconfigurator.doConfigure(GenericConfigurator.java: 110) au ch.la qualité de service.logback.core.joran.Généricconfigurator.doConfigure(GenericConfigurator.java: 53) au ch.la qualité de service.logback.classique.util.Contextinitialiseur.configureByResource (ContextInitializer.java: 75) au ch.la qualité de service.logback.classique.util.Contextinitialiseur.autoConfig(ContextInitializer.java: 150) au org.slf4j.impl.StaticLoggerBinder.init (StaticLoggerBinder.java: 84) à à org.slf4j.impl.StaticLoggerBinder.(StaticLoggerBinder.java: 55) au org.slf4j.LoggerFactory.bind (LoggerFactory.java:150) au org.slf4j.LoggerFactory.performInitialization (LoggerFactory.java: 124) au org.slf4j.LoggerFactory.getILoggerFactory (LoggerFactory.java:412) à à ch.la qualité de service.logback.classique.util.StatusViaSLF4JLoggerFactory.addStatus (StatusViaSLF4JLoggerFactory.java: 32) au ch.la qualité de service.logback.classique.util.StatusViaSLF4JLoggerFactory.addInfo (StatusViaSLF4JLoggerFactory.java: 20) au ch.la qualité de service.logback.classique.servlet.Logbackservletcontainerinitialiseur.onStartup (LogbackServletContainerInitializer.java: 32) au org.Apache.Catalina.core.StandardContext.startInternal(StandardContext.java: 5245) au org.Apache.Catalina.util.LifecycleBase.start (LifecycleBase.java: 150) au org.Apache.Catalina.core.ContainerBase $ StartChild.appel (ContainerBase.java: 1421) au org.Apache.Catalina.core.ContainerBase $ StartChild.appel (ContainerBase.java: 1411) at java.util.simultané.FutureTask.exécuter (Source inconnue) à at Java.util.simultané.ThreadPoolExecutor.runWorker (Source inconnue) à à java.util.simultané.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Fil.run (Unknown Source)

18
demandé sur sarath 2018-05-17 12:28:58

9 réponses

à partir de MySQL 8.0.4, ils ont changé le plugin d'authentification par défaut pour MySQL server de mysql_native_password en caching_sha2_password.

Vous pouvez exécuter la commande ci-dessous pour résoudre le problème.

exemple de nom d'utilisateur / mot de passe --> étudiant / pass123

ALTER USER 'student'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pass123';

Consulter la page officielle pour plus de détails: Manuel De Référence MySQL

21
répondu Gaurav 2018-05-20 10:15:20

peut être que vous utilisez le mauvais mysql_connector.

utiliser le connecteur de la même version mysql

5
répondu Vishal Boinapalli 2018-06-01 14:56:53

je tapais cette erreur dans une application de démarrage à ressort, mais pas dans une autre. Enfin, j'ai trouvé que la version de démarrage à ressort dans celle qui ne fonctionnait pas était 2.0.0.Et celui qui fonctionnait était 2.0.1.PUBLIER. Cela a conduit à une différence dans le connecteur MySQL -- 5.1.45 vs. 5.1.46. J'ai mis à jour la version de démarrage de printemps pour l'application qui lançait cette erreur au démarrage et maintenant cela fonctionne.

5
répondu Greg Charles 2018-06-05 22:22:30

vous avez des problèmes avec la nouvelle version de MySQL qui est venue avec le plugin "caching_sha2_password", suivez la commande ci-dessous pour la résoudre.

DROP USER 'your_user_name'@'%';
CREATE USER 'your_user_name'@'%' IDENTIFIED WITH mysql_native_password BY 'your_user_password';
GRANT ALL PRIVILEGES ON your_db_name.* TO 'your_user_name'@'%' identified by 'your_user_password';

Ou vous pouvez simplement utiliser la commande ci-dessous pour garder vos privilèges que c'est:

ALTER USER your_user_name IDENTIFIED WITH mysql_native_password;
2
répondu 2018-05-17 09:37:22

vous avez juste besoin de supprimer votre ancien connecteur et télécharger la nouvelle version (mysql-connector-java-5.1.46)

2
répondu Turab 2018-07-29 11:57:39

si vous pouvez mettre à jour votre connecteur vers une version, qui supporte le nouveau plugin D'authentification de MySQL 8, alors faites-le. Si ce n'est pas une option pour une raison quelconque, changez la méthode d'authentification par défaut de votre utilisateur de base de données en native.

0
répondu DataVader 2018-08-16 16:01:46

je pense qu'il est préférable de mettre à jour votre paquet "mysql-connector" lib, pour que la base de données soit encore plus sûre.

j'utilise mysql de la version 8.0.12. Quand j'ai mis à jour le mysql-connector-java vers la version 8.0.11, le problème était parti.

0
répondu Jack Ma 2018-08-16 16:06:37

supprimer la connexion .fichier jar si vous avez ajouté plusieurs version connecteur fichier jar seulement ajouter le connecteur fichier jar qui correspond à votre version sql.

0
répondu user10434384 2018-09-29 17:33:08

j'utilise mysql 8.0.12 et la mise à jour du connecteur mysql vers mysql-connector-java-8.0.12 a résolu le problème pour moi.

j'Espère que ça aide quelqu'un.

0
répondu Santosh Gatlewar 2018-10-03 14:16:42