caching_sha2_password Соединение закрыто внешним хостом

0

Я создаю контейнер mysql в докере с URL:

JDBC: MySQL://172.17.0.2: 3306/'Databasename'

172.17.0.2 - это IP-адрес контейнера докеров. Я создаю пользователя с помощью:

 CREATE USER 'saman'@'%' IDENTIFIED BY 'password';
 GRANT ALL PRIVILEGES ON *.* TO 'saman'@'%'  WITH GRANT OPTION;

когда я хочу подключиться от intllje Ide я connect успешно, но когда я хочу подключиться к моему java-приложению, я получил исключение:

 Caused by: com.mysql.cj.core.exceptions.WrongArgumentException: Unable 
to load authentication plugin 'caching_sha2_password'

также я изменил пароль проверки подлинности по умолчанию от caching_sha2_password до mysql_native_password в mysql-пользователях. для получения дополнительной информации, когда я использую команду telnet:

telnet 172.17.0.2 3306 return: caching_sha2_passwordConnection закрыт иностранным хостом.

Заранее спасибо.

Теги:
docker

2 ответа

0

Наконец, я нашел решение для моего вопроса. Я подключаюсь к командной строке mysql и запускаю следующий запрос:

изменить user 'saman' @'%', идентифицированный с помощью mysql_native_password по паролю;

Затем в phpmyadmin исключение исчезло. Вы можете проверить результат запроса:

выберите пользователя, хост, authentication_string, плагин из mysql.user;

и вы должны увидеть mysql_native_password перед пользователем saman.

0

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

GRANT ALL PRIVILEGES ON *.* TO 'saman'@'%'  IDENTIFIED WITH mysql_native_password WITH GRANT OPTION;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню