In Eclipse, als ich meine Anwendung startete, bekam ich Folgendes - Der zu verwendende Dialekt konnte nicht gefunden werden. java.sql.SQLException: Das Authentifizierungs-Plugin 'caching_sha2_password' kann nicht geladen werden.
at java.sql.SQLException: Das Authentifizierungs-Plugin 'caching_sha2_password' kann nicht geladen werden. at at com.mysql.jdbc.SQLError.createSQLException (SQLError.java:868) at at com.mysql.jdbc.SQLError.createSQLException (SQLError.java:864) at at com.mysql.jdbc.MysqlIO. java: 1746) unter com.mysql.jdbc.MysqlIO.doHandshake (MysqlIO.java:1226) unter com.mysql.jdbc.ConnectionImpl.coreConnect (ConnectionImpl.java:2191) unter com.mysql.jdbc.ConnectionImpl. connectOneTryOnly (ConnectionImpl.java:2222) unter com.mysql.jdbc.ConnectionImpl.createNewIO (ConnectionImpl.java:2017) unter com.mysql.jdbc.ConnectionImpl. (ConnectionImpl.java:779) unter com.myscl.d .JDBC4Connection. (JDBC4Connection.java:47) at at sun.reflect.NativeConstructorAccessorImpl.
Andere haben auf das Grundproblem hingewiesen, aber in meinem Fall habe ich dbeaver verwendet und beim Einrichten der MySQL-Verbindung mit dbeaver zunächst den falschen MySQL-Treiber ausgewählt (Antwort hier als Antwort: https://github.com/dbeaver/dbeaver/ Issues / 4691 # issuecomment-442173584 )
Wenn Sie die MySQL-Auswahl in der folgenden Abbildung auswählen, wird der erwähnte Fehler angezeigt, da der Treiber MySQL 4+ ist, der im Datenbankinformationstipp angezeigt wird.
Anstatt den MySQL-Treiber auszuwählen, wählen Sie stattdessen den MySQL 8+ -Treiber aus (siehe Abbildung unten).
quelle
Public key retrieval is not allowed
Aktualisieren Sie Ihr mysql-connector "lib-Paket mit Ihrer mysql-Version wie unten Ich verwende die Version 8.0.13 und in pom habe ich die Version geändert:
Mein Problem hat sich danach gelöst.
quelle
Möglicherweise verwenden Sie einen falschen mysql_connector.
Verwenden Sie den Connector derselben MySQL-Version
quelle
Ich habe diesen Fehler in einer Spring Boot-App festgestellt, aber nicht in einer anderen. Schließlich stellte ich fest, dass die Spring Boot-Version in der nicht funktionierenden Version 2.0.0.RELEASE und die funktionierende Version 2.0.1.RELEASE war. Dies führte zu einem Unterschied im MySQL Connector - 5.1.45 gegenüber 5.1.46. Ich habe die Spring Boot-Version für die App aktualisiert, die diesen Fehler beim Start ausgelöst hat, und jetzt funktioniert sie.
quelle
Sie müssen nur Ihren älteren Connector löschen und eine neue Version herunterladen (mysql-connector-java-5.1.46).
quelle
Ich verwende MySQL 8.0.12 und das Aktualisieren des MySQL-Connectors auf MySQL-Connector-Java-8.0.12 hat das Problem für mich behoben.
Hoffe es hilft jemandem.
quelle
Wie oben erwähnt:
Ab MySQL 8.0.4 hat das MySQL-Team das Standard-Authentifizierungs-Plugin für den MySQL-Server von mysql_native_password in caching_sha2_password geändert.
Es gibt also drei Möglichkeiten, um dieses Problem zu beheben:
quelle
Dies könnten Ihre Konnektoren für MySQL sein, die aktualisiert werden müssen, da MySQL8 die Verschlüsselung von Passwörtern geändert hat - ältere Konnektoren verschlüsseln sie daher falsch.
Das Maven Repo für den Java Connector finden Sie hier .
Wenn Sie das Flyway-Plugin verwenden , sollten Sie auch eine Aktualisierung in Betracht ziehen !
Dann können Sie einfach Ihren Maven Pom aktualisieren mit:
Oder für andere, die Gradle verwenden , können Sie build.gradle aktualisieren mit:
quelle
Sie haben ein Problem mit der neuen MySQL-Version, die mit dem Plugin "caching_sha2_password" geliefert wurde. Befolgen Sie den folgenden Befehl, um das Problem zu beheben.
Oder Sie können einfach den folgenden Befehl verwenden, um Ihre Berechtigungen unverändert zu lassen:
quelle
Ich bin auf dieses Problem bei NetBeans gestoßen, als ich mit einem vorgefertigten Projekt aus diesem Murach JSP-Buch gearbeitet habe . Das Problem wurde durch die Verwendung des 5.1.23 Connector J mit einer MySQL 8.0.13-Datenbank verursacht. Ich musste den alten Treiber durch einen neuen ersetzen. Nach dem Herunterladen des Connector J wurden drei Schritte ausgeführt.
So ersetzen Sie das NetBeans-Projekt Connector J:
Laden Sie die aktuellen Stecker J von hier . Dann kopieren Sie es in Ihr Betriebssystem.
Klicken Sie in NetBeans auf die Registerkarte Dateien neben der Registerkarte Projekte. Suchen Sie den mysql-connector-java-5.1.23.jar oder einen anderen alten Connector, den Sie haben. Löschen Sie diesen alten Stecker. Fügen Sie den neuen Connector ein.
Klicken Sie auf die Registerkarte Projekte. Navigieren Sie zum Ordner Libraries. Löschen Sie den alten MySQL-Connector. Klicken Sie mit der rechten Maustaste auf den Ordner Libraries. Wählen Sie Glas / Ordner hinzufügen. Navigieren Sie zu dem Speicherort, an dem Sie den neuen Connector platzieren, und wählen Sie Öffnen.
Klicken Sie auf der Registerkarte Projekt mit der rechten Maustaste auf das Projekt. Wählen Sie unten im Popup-Menü die Option Datenquellen auflösen. Klicken Sie auf Verbindung hinzufügen. Zu diesem Zeitpunkt springt NetBeans vorwärts und geht davon aus, dass Sie den alten Connector verwenden möchten. Klicken Sie auf die Schaltfläche Zurück, um zum übersprungenen Fenster zurückzukehren. Entfernen Sie den alten Stecker und fügen Sie den neuen Stecker hinzu. Klicken Sie auf Weiter und Verbindung testen, um sicherzustellen, dass es funktioniert.
Als Videoreferenz fand ich dies nützlich. Für IntelliJ IDEA fand ich dies nützlich.
quelle
Ich habe genau das gleiche Problem mit der folgenden Abhängigkeit gemacht:
Ich wechsle gerade zu Version 46 und alles funktioniert.
quelle
Ich denke, es ist besser, Ihr lib-Paket "mysql-connector" zu aktualisieren, damit die Datenbank noch sicherer ist.
Ich verwende MySQL der Version 8.0.12. Als ich mysql-connector-java auf Version 8.0.11 aktualisierte, war das Problem behoben.
quelle
Wenn Sie Ihren Connector auf eine Version aktualisieren können, die das neue Authentifizierungs-Plugin von MySQL 8 unterstützt, tun Sie dies. Wenn dies aus irgendeinem Grund keine Option ist, ändern Sie die Standardauthentifizierungsmethode Ihres Datenbankbenutzers in native.
quelle
Entfernen Sie die Connect-JAR-Datei, wenn Sie die Connector-JAR-Datei mit mehreren Versionen hinzugefügt haben. Fügen Sie nur die Connector-JAR-Datei hinzu, die mit Ihrer SQL-Version übereinstimmt.
quelle
Eine andere Ursache könnte die Tatsache sein, dass Sie auf den falschen Port zeigen.
Stellen Sie sicher, dass Sie tatsächlich auf den richtigen SQL Server zeigen. Möglicherweise wird MySQL standardmäßig unter 3306 installiert, Sie benötigen jedoch möglicherweise eine andere MySQL-Instanz.
Überprüfen Sie die Ports und führen Sie eine Abfrage für die Datenbank aus.
quelle