Не удается подключиться к MariaDB с помощью JDB C, mysql Утилиты успешно - PullRequest
0 голосов
/ 09 января 2020

Я использую JDB C и Spring Boot 2.2.2 для подключения к экземпляру MariaDB. Сбой входа в систему с этим сообщением:

Причина: java. sql .SQLInvalidAuthorizationSpecException: Не удалось подключиться к адресу = (host = server.company.domain) (port = 3306) ( type = master): доступ запрещен для пользователя 'user'@'server.company.domain' (используется пароль: YES)

Когда я запускаю mysqldump -u"user" -p"password" -h server.company.domain dbname, это работает просто отлично!

  • И дамп, и приложение Spring Boot запускаются с одного компьютера (сам сервер базы данных)
  • используемые имя пользователя и пароль идентичны
  • специальные символы в пароль или пользователь (только строчные / прописные символы и цифры)
  • строка подключения jdb c выглядит следующим образом: jdbc:mariadb://server.company.domain:3306/dbname
  • Я уже пытался использовать localhost вместо имя сервера
  • когда я меняю jdb c url, пользователь и пароль могут войти в мою разработку mariaDB

Ответы [ 2 ]

1 голос
/ 10 января 2020

Я запустил короткий SHOW GRANTS; с помощью команды mysql, которая может подключиться к базе данных. Вывод дал мне это:

GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY PASSWORD 'nonono' REQUIRE SSL WITH GRANT OPTION

Соответствующая часть REQUIRE SSL: соединения с этим сервером должны быть зашифрованы.

Когда я проверил файлы в /etc/my.cnf.d/, я нашел файл, содержащий (среди прочего) эти строки:

[server]
ssl=1
ssl-cert=/path/to/certificate/cert.pem

Путем поиска в гугле я нашел эту ссылку, которая описывает, как настроить драйвер JDB C для использования ssl. Это также объясняет, почему вам, возможно, стоит подумать дважды, прежде чем устанавливать trustServerCertificate на true.

Мой spring.datasource.url теперь выглядит следующим образом:

jdbc:mariadb://server.company.domain:3306/dbname?useSSL=true&trustServerCertificate=true&serverSslCert=/path/to/certificate/cert.pem

Короче говоря: Access denied for user не рассказывает полную историю. Это заставляет вас думать, что ваш пароль может быть неправильным, но вам отказали по другим причинам.

1 голос
/ 09 января 2020

Похоже, у вас проблемы с MariaDB, а не с самой весенней загрузкой. Я предлагаю вам перейти по этим ссылкам: https://mariadb.com/kb/en/configuring-mariadb-for-remote-client-access/ и вернуться, если это не решило вашу проблему, с тем, что вы пытались, а что не сработало.

...