java - update - Come risolvere Impossibile caricare il problema 'caching_sha2_password' del plug-in di autenticazione




update data mysql spring boot (10)

In eclissi quando ho avviato la mia applicazione ho ottenuto questo: Impossibile trovare il dialetto da usare. java.sql.SQLException: impossibile caricare il plug-in di autenticazione 'caching_sha2_password'.

at java.sql.SQLException: impossibile caricare il plug-in di autenticazione 'caching_sha2_password'. at at com.mysql.jdbc.SQLError.createSQLException (SQLError.java:868) at at com.mysql.jdbc.SQLError.createSQLException (SQLError.java:864) at com.mysql.jdbc.MysqandsHWA. java: 1746) at com.mysql.jdbc.MysqlIO.doHandshake (MysqlIO.java:1226) at com.mysql.jdbc.ConnectionImpl.coreConnect (ConnectionImpl.java:2191) at com.mysql.jdbc.ConnectionImpl. connectOneTryOnly (ConnectionImpl.java:2222) at com.mysql.jdbc.ConnectionImpl.createNewIO (ConnectionImpl.java:2017) at com.mysql.jdbc.ConnectionImpl. (ConnectionImpl.java:779) at com.mysql.jdbc .JDBC4Connection. (JDBC4Connection.java:47) at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Metodo nativo) at at sun.reflect.NativeConstructorAccessorImpl.newInstance (Fonte sconosciuta) at sun.reflect.Delegstance.pliant (Source) at java.lang.reflect.Constructor.newInstance (Fonte sconosciuta) at com.mysql.jdbc.Util.handleNewInstance (Util.java:425) in un t com.mysql.jdbc.ConnectionImpl.getInstance (ConnectionImpl.java:389) at com.mysql.jdbc.NonRegoggingDriver.connect (NonRegoggingDriver.java:330) at at java.sql.DriverManager.getConnection (Fonte sconosciuta) at java.sql.DriverManager.getConnection (fonte sconosciuta) a ch.qos.logback.core.db.DriverManagerConnectionSource.getConnection (DriverManagerConnectionSource.java:54) a ch.qos.logback.core.db.ConnectionSourceBase.discoverConnectionProperties (ConnectionSourceBase.discoverConnectionProperties (ConnectionSourceBase.discoverConnectionProperties .java: 46) at at ch.qos.logback.core.db.DriverManagerConnectionSource.start (DriverManagerConnectionSource.java:38) at at ch.qos.logback.core.joran.action.NestedComplexPropertyIA.end (NestedComplexPropertyIA.java:161 ) at at ch.qos.logback.core.joran.spi.Interpreter.callEndAction (Interpreter.java:309) at at ch.qos.logback.core.joran.spi.Interpreter.endElement (Interpreter.java:193) at at ch.qos.logback.core.joran.spi.Interpreter.endElement (Interpreter.java:179) at at ch.qos.logback.core.joran.spi.EventPlayer.play (EventPl ayer.java:62) at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure (GenericConfigurator.java:165) at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure (GenericConfigurator.java:152) at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure (GenericConfigurator.java:110) at at ch.qos.logback.core.joran.GenericConfigurator.doConfigure (GenericConfigurator.java:53) at ch.qos. logback.classic.util.ContextInitializer.configureByResource (ContextInitializer.java:75) at at ch.qos.logback.classic.util.ContextInitializer.autoConfig (ContextInitializer.java:150) at org.slf4j.impl.StaticLogger ( StaticLoggerBinder.java:84) at org.slf4j.impl.StaticLoggerBinder. (StaticLoggerBinder.java:55) at org.slf4j.LoggerFactory.bind (LoggerFactory.java:150) at org.slf4j.LoggerFactory.performInitial .java: 124) at at org.slf4j.LoggerFactory.getILoggerFactory (LoggerFactory.java:412) at at ch.qos.logback.classic.util.StatusViaSLF4JLoggerFactory.addSta tus (StatusViaSLF4JLoggerFactory.java:32) at at ch.qos.logback.classic.util.StatusViaSLF4JLoggerFactory.addInfo (StatusViaSLF4JLoggerFactory.java:20) at ch.qos.logback.classic.ervletonupupCerServial 32) at org.apache.catalina.core.StandardContext.startInternal (StandardContext.java:5245) at org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:150) at org.apache.catalina. core.ContainerBase $ StartChild.call (ContainerBase.java:1421) at at org.apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1411) at java.util.concurrent.FutureTask.run (Fonte sconosciuta ) at at java.util.concurrent.ThreadPoolExecutor.runWorker (fonte sconosciuta) at at java.util.concurrent.ThreadPoolExecutor $ Worker.run (fonte sconosciuta) at java.lang.Thread.run (fonte sconosciuta)


A partire da MySQL 8.0.4, hanno modificato il plug-in di autenticazione predefinito per il server MySQL da mysql_native_password a caching_sha2_password .

È possibile eseguire il comando seguente per risolvere il problema.

nome utente / password campione => studente / pass123

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

Per i dettagli, consultare la pagina ufficiale: Manuale di riferimento di MySQL


Aggiorna il tuo pacchetto lib "mysql-connector" con la tua versione mysql come sotto sto usando la versione 8.0.13 e in pom ho cambiato la versione:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
    <version>8.0.13</version>
</dependency>

Il mio problema si è risolto dopo questo.


Devi solo eliminare il tuo vecchio connettore e scaricare la nuova versione (mysql-connettore-java-5.1.46)


Forse stai usando mysql_connector sbagliato.

Utilizzare il connettore della stessa versione di mysql


Ho riscontrato questo errore in un'app Spring Boot, ma non in un'altra. Alla fine, ho scoperto che la versione di Spring Boot in quella che non funzionava era 2.0.0.RELEASE e quella che funzionava era 2.0.1.RELEASE. Ciò ha portato a una differenza nel connettore MySQL: 5.1.45 contro 5.1.46. Ho aggiornato la versione di Spring Boot per l'app che stava lanciando questo errore all'avvio e ora funziona.


Mi sono imbattuto in questo problema su NetBeans mentre lavoravo con un progetto già pronto da questo libro JSP di Murach . Il problema è stato causato dall'utilizzo del connettore J 5.1.23 con un database MySQL 8.0.13. Avevo bisogno di sostituire il vecchio driver con uno nuovo. Dopo aver scaricato il connettore J, sono bastati tre passaggi.

Come sostituire il connettore J del progetto NetBeans:

  1. Scarica il connettore J corrente da here . Quindi copiarlo nel tuo sistema operativo.

  2. In NetBeans, fai clic sulla scheda File che si trova accanto alla scheda Progetti. Trova mysql-connettore-java-5.1.23.jar o qualsiasi altro vecchio connettore tu abbia. Elimina questo vecchio connettore. Incolla nel nuovo connettore.

  3. Fai clic sulla scheda Progetti. Passare alla cartella Librerie. Elimina il vecchio connettore mysql. Fare clic con il tasto destro sulla cartella Librerie. Seleziona Aggiungi Jar / Cartella. Passare alla posizione in cui è stato inserito il nuovo connettore e selezionare Apri.

  4. Nella scheda Progetto, fare clic con il tasto destro sul progetto. Seleziona Risolvi origini dati nella parte inferiore del menu popup. Fai clic su Aggiungi connessione. A questo punto NetBeans salta in avanti e presuppone che si desidera utilizzare il vecchio connettore. Fai clic sul pulsante Indietro per tornare alla finestra saltata. Rimuovere il vecchio connettore e aggiungere il nuovo connettore. Fare clic su Avanti e verifica connessione per assicurarsi che funzioni.

Per riferimento video, ho trovato this utile. Per IntelliJ IDEA, l'ho trovato utile.


Se riesci ad aggiornare il tuo connettore ad una versione che supporta il nuovo plugin di autenticazione di MySQL 8, allora fallo. Se questa non è un'opzione per qualche motivo, cambia il metodo di autenticazione predefinito dell'utente del database in nativo.


Stai riscontrando problemi con la nuova versione di MySQL fornita con il plug-in "caching_sha2_password", segui il comando seguente per risolverlo.

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';

Oppure puoi semplicemente usare il comando seguente per mantenere i tuoi privilegi così come sono:

ALTER USER your_user_name IDENTIFIED WITH mysql_native_password;

Un'altra causa potrebbe essere il fatto che stai indicando la porta sbagliata.

Assicurati di puntare effettivamente al server SQL giusto. Potresti avere un'installazione predefinita di MySQL in esecuzione su 3306 ma in realtà potresti aver bisogno di un'altra istanza di MySQL.

Controlla le porte ed esegui alcune query sul db.


rimuovere il file .jar di connessione se è stato aggiunto il file jar del connettore a più versioni solo aggiungere il file jar del connettore corrispondente alla propria versione sql.