Mysql ошибка соединения с использованием JDBC - PullRequest
0 голосов
/ 06 июня 2018

У меня действительно серьезная проблема, и я не могу продолжить свою задачу в течение двух дней.Я использую Docker и MySQL сервер.У меня есть файл docker-compose.yml, который:

version: '2'
services:
  mongoDb:
    image: mongo:latest
    container_name: myproject-mongodb
    ports:
      - "27017:27017"

  mssql:
    image: mysql/mysql-server:8.0
    container_name: myproject-mysql
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: 'pass'
      MYSQL_DATABASE: 'myproject'
      MYSQL_USER: 'myproject'
      MYSQL_PASSWORD: 'alex1234!'

Образы докера создаются успешно.Используя клиент dbeaver, я установил соединение, используя, конечно, драйвер mysql и точные учетные данные: хост сервера: порт локального хоста: 3306 База данных: myproject Имя пользователя: пароль myproject: 'alex1234!'Также я установил в свойствах драйвера значение allowPublicKeyRetrieval в true, и соединение установлено.Теперь в моем intellij в файле application.properties у меня точно такие же вещи:

#MySql WebMvcConfiguration.java
spring.datasource.url=jdbc:mysql://localhost:3306/myproject?allowPublicKeyRetrieval=true
spring.datasource.username=myproject
spring.datasource.password=alex1234!
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
hibernate.dialect = org.hibernate.dialect.MySQLDialect
hibernate.show_sql = true

и когда я запустил приложение, я столкнулся с этой ошибкой:

Authentication plugin 'caching_sha2_password' cannot be loaded

Почему это происходит?Я также попробовал некоторые решения ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password By 'password';, но ничего.Пожалуйста, помогите

1 Ответ

0 голосов
/ 06 июня 2018

В MySQL 8.0 caching_sha2_password является подключаемым модулем аутентификации по умолчанию, а не mysql_native_password.Для получения информации о последствиях этого изменения для работы сервера и совместимости сервера с клиентами и соединителями, см. Caching_sha2_password как Плагин предпочтительной аутентификации - https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password

Вы используете mysql8 в образах докеров, и он имеет другойреализация для аутентификации.

см. изменения caching_sha2_password в следующих ссылках

Так что пока попробуйте понизить версию mysql до 5.7.И на примечании стороны идут по ссылкам, чтобы использовать надлежащие шаги с mysql-8.Взгляните на следующую ссылку для jdbc-разъема.https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password-compatible-connectors

...