Как решить проблему с невозможностью загрузки плагина аутентификации caching_sha2_password - PullRequest
0 голосов
/ 17 мая 2018

В затмении, когда я запустил свое приложение, я получил это - Не удалось обнаружить диалект для использования.java.sql.SQLException: Невозможно загрузить плагин аутентификации 'caching_sha2_password'.

в java.sql.SQLException: Невозможно загрузить плагин аутентификации 'caching_sha2_password'.по адресу com.mysql.jdbc.SQLError.createSQLException (SQLError.java:868) по адресу com.mysql.jdbc.SQLError.createSQLException (SQLError.java:864) по адресу com.mysql.jdbc.MysuthlugJava: 1746) по адресу com.mysql.jdbc.MysqlIO.doHandshake (MysqlIO.java:1226) по адресу com.mysql.jdbc.ConnectionImpl.coreConnect (ConnectionImpl.java:2191) по адресу com.mysql.jdbc.ConnectionImpl.connectOneTryOnly (ConnectionImpl.java:2222) по адресу com.mysql.jdbc.ConnectionImpl.createNewIO (ConnectionImpl.java:2017) по адресу com.mysql.jdbc.ConnectionImpl. (ConnectionImpl.java:779) по адресу com.myscl..JDBC4Connection. (JDBC4Connection.java:47) в at.jpg.reflect.по адресу java.lang.reflect.Constructor.newInstance (неизвестный источник) по адресу com.mysql.jdbc.Util.handleNewInstance (Util.java:425) по адресуt com.mysql.jdbc.ConnectionImpl.getInstance (ConnectionImpl.java:389) в at com.mysql.jdbc.NonRegisteringDriver.connect (NonRegisteringDriver.java:330) в java.sql.DriverManager.getConnection в неизвестный источникjava.sql.DriverManager.getConnection (Неизвестный источник) по адресу ch.qos.logback.core.db.DriverManagerConnectionSource.getConnection (DriverManagerConnectionSource.java:54) по адресу ch.qos.logback.core.db.ConnectionSourceBase.ProasetiesConnect.java: 46) по адресу ch.qos.logback.core.db.DriverManagerConnectionSource.start (DriverManagerConnectionSource.java:38) по адресу ch.qos.logback.core.joran.action.NestedComplexPropertyIA.end (NestedComplexPropertyIA.java:) по адресу ch.qos.logback.core.joran.spi.Interpreter.callEndAction (Interpreter.java:309) по адресу ch.qos.logback.core.joran.spi.Interpreter.endElement (Interpreter.java:193) по адресув ch.qos.logback.core.joran.spi.Interpreter.endElement (Interpreter.java:179) в в ch.qos.logback.core.joran.spi.EventPlayer.play (EventPlayer.java:62) по адресу ch.qos.logback.core.joran.GenericConfigurator.doConfigure (GenericConfigurator.java:165) по адресу ch.qos.logback.core.joran.GenericConfigurator.doConfigure (GenericConfigurator.j)по адресу ch.qos.logback.core.joran.GenericConfigurator.doConfigure (GenericConfigurator.java:110) по адресу ch.qos.logback.core.joran.GenericConfigurator.doConfigure (GenericConfigurator.java:53) по адресу ch.qq.logback.classic.util.ContextInitializer.configureByResource (ContextInitializer.java:75) по адресу в ch.qos.logback.classic.util.ContextInitializer.autoConfig (ContextInitializer.java:150) по адресу org.slf4j.impl.IninStaticLoggerBinder.java:84) в atg.slf4j.impl.StaticLoggerBinder. (StaticLoggerBinder.java:55) в org.slf4j.LoggerFactory.bind (LoggerFactory.java:150) в org.slf4j.LoggerFactory.java: 124) по адресу org.slf4j.LoggerFactory.getILoggerFactory (LoggerFactory.java:412) по адресу ch.qos.logback.classic.util.StatusViaSLF4JLoggerFactory.addStatus (StatusViaSLF4JLoggerFactory.java:32) по адресу ch.qos.logback.classic.util.StatusViaSLF4JLoggerFactory.addInfo (StatusViaSLF4JLoggerFactory.java:20) по адресу ch.qos.logbacker32) по адресу org.apache.catalina.core.StandardContext.startInternal (StandardContext.java:5245) по адресуorg.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:150) по адресу org.apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1421) по адресу org.apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1411) по адресу java.util.concurrent.FutureTask.run (неизвестный источник) по адресу java.util.concurrent.ThreadPoolExecutor.runWorker (неизвестный источник) по адресу java.util.concurrent.ThreadPoolExecutor $ Worker.run (неизвестный источник) по адресу java.lang.Thread.run (неизвестный источник)

Ответы [ 14 ]

0 голосов
/ 05 июня 2019

Я сделал точно такую ​​же проблему, используя приведенную ниже зависимость:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.44</version>
</dependency>

Я просто перешел на версию 46 и все работает.

0 голосов
/ 12 декабря 2018

Я столкнулся с этой проблемой в NetBeans при работе с готовым проектом из этой книги Murach JSP . Проблема была вызвана использованием соединителя J 5.1.23 с базой данных MySQL 8.0.13. Мне нужно было заменить старый драйвер на новый. После загрузки Connector J это заняло три шага.

Как заменить проектный соединитель NetBeans J:

  1. Загрузите текущий разъем J из здесь . Затем скопируйте его в свою ОС.

  2. В NetBeans щелкните вкладку «Файлы», которая находится рядом с вкладкой «Проекты». Найдите mysql-connector-java-5.1.23.jar или любой другой старый соединитель, который у вас есть. Удалите этот старый разъем. Вставьте новый соединитель.

  3. Нажмите на вкладку Проекты. Перейдите в папку «Библиотеки». Удалите старый соединитель MySQL. Щелкните правой кнопкой мыши папку «Библиотеки». Выберите Добавить банку / папку. Перейдите к месту, куда вы положили новый разъем, и выберите «Открыть».

  4. На вкладке Проект щелкните правой кнопкой мыши проект. Выберите Разрешить источники данных в нижней части всплывающего меню. Нажмите на Добавить соединение. На этом этапе NetBeans переходит вперед и предполагает, что вы хотите использовать старый соединитель. Нажмите кнопку Назад, чтобы вернуться к пропущенному окну. Удалите старый разъем и добавьте новый разъем. Нажмите Далее и проверьте соединение, чтобы убедиться, что оно работает.

Для справки по видео я нашел это полезным. Для IntelliJ IDEA я нашел это полезным.

0 голосов
/ 17 января 2019

Обновите пакет lib вашего mysql-connector "вашей версией mysql, как показано ниже. Я использую версию 8.0.13, и в pom я изменил версию:

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

После этого моя проблема разрешилась.

0 голосов
/ 20 октября 2018

Как уже упоминалось в предыдущих ответах:

Начиная с MySQL 8.0.4, команда MySQL изменила подключаемый модуль аутентификации по умолчанию для сервера MySQL с mysql_native_password на caching_sha2_password.

Таким образом, существует три способа решения этой проблемы:

 1. drop USER 'user_name'@'localhost';
    flush privileges;
    CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'user_name';
    GRANT ALL PRIVILEGES ON * . * TO 'user_name'@'localhost';
    ALTER USER 'user_name'@'localhost' IDENTIFIED WITH mysql_native_password BY 
    'user_name';

 2. drop USER 'user_name'@'localhost';
    flush privileges;
    CREATE USER 'user_name'@'localhost' IDENTIFIED WITH mysql_native_password BY 'user_name';
GRANT ALL PRIVILEGES ON * . * TO 'user_name'@'localhost'

 3. If the user is already created, the use the following command:

    ALTER USER 'user_name'@'localhost' IDENTIFIED WITH mysql_native_password BY 
        'user_name';
0 голосов
/ 20 ноября 2018

Другой причиной может быть тот факт, что вы указываете на неправильный порт.

Убедитесь, что вы действительно указываете на правильный сервер SQL.У вас может быть установленная по умолчанию установка MySQL на 3306, но на самом деле вам может понадобиться другой экземпляр MySQL.

Проверьте порты и выполните некоторый запрос к базе данных.

0 голосов
/ 29 сентября 2018

удалите файл подключения .jar, если вы добавили файл jar коннектора с несколькими версиями, добавьте только файл jar коннектора, соответствующий вашей версии sql.

0 голосов
/ 03 октября 2018

Я использую mysql 8.0.12 и обновляю соединитель mysql до mysql-connector-java-8.0.12, и я решил эту проблему.

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 16 августа 2018

Я думаю, что лучше обновить ваш пакет lib "mysql-connector", чтобы база данных была еще более безопасной.

Я использую mysql версии 8.0.12.Когда я обновил mysql-connector-java до версии 8.0.11, проблема исчезла.

0 голосов
/ 16 августа 2018

Если вы можете обновить свой соединитель до версии, которая поддерживает новый плагин аутентификации MySQL 8, то сделайте это. Если по какой-либо причине это невозможно, измените метод аутентификации по умолчанию для пользователя базы данных на собственный.

0 голосов
/ 29 июля 2018

Вам нужно просто удалить свой старый соединитель и загрузить новую версию (mysql-connector-java-5.1.46)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...