Spring Boot / MySql :: SQLException: доступ запрещен для пользователя 'user1' @ 'dhcp-etc' (используя пароль: YES) - PullRequest
0 голосов
/ 23 декабря 2018

Прочитав и попробовав ответы на подобные посты, я хочу задать этот вопрос.Моя проблема связана с переходом на весеннюю загрузку 2.0.0?

После создания любой базы данных MySql, локально или RDS AWS, я не могу подключить к ней свое приложение Spring Boot 2.0.0.Я все еще вижу, что исключение: ... Доступ запрещен для пользователя ... (используя пароль: ДА).

ВАЖНО : с помощью следующей простой Java-программы я мог бы !!получить доступ к базе данных AWS RDS MySql.Я также мог бы создавать таблицы и т. Д.

Class.forName("com.mysql.jdbc.Driver");
// Username and password created via MySQL workbench
String username = "dbuser";
String password = "dbpassword";
String jdbcUrl = "jdbc:mysql://myhostname:3306/mydatabase?user=" + username + "&password=" + password;
Connection con = DriverManager.getConnection(jdbcUrl);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(selectStmt);

С простым приложением Spring Boot 2.0.0 я не могу подключиться.Сначала я получаю эту ошибку:

2018-12-25 10: 36: 59.670 ОШИБКА 7184 --- [main] com.zaxxer.hikari.pool.HikariPool: HikariPool-1 - исключение во время пулаинициализация.

java.sql.SQLException: доступ запрещен для пользователя 'dbuser' @ 'dhcp-etc' (с использованием пароля: ДА)

Далее я получаю эту ошибку:

java.lang.IllegalStateException: не удалось загрузить ApplicationContext

Вызвано: org.springframework.beans.factory.BeanCreationException: Ошибка при создании компонента с именем entityManagerFactory, определенным в ресурсе пути к классу[org / springframework / boot / autoconfigure / orm / jpa / HibernateJpaConfiguration.class]: сбой вызова метода init;вложенное исключение: javax.persistence.PersistenceException: [PersistenceUnit: default] Невозможно построить Hibernate SessionFactory. Причина:

javax.persistence.PersistenceException: [PersistenceUnit: default] Невозможно построить Hibernate SessionFactory. Причина:

org.hibernate.exception.GenericJDBCException: Невозможно открыть JDBC-соединение для выполнения DDL. Причина: java.sql.SQLException: Доступ запрещен для пользователя 'dbsetup'@'dhcp-ipaddress-etc-.nl' (используя пароль: ДА)

И:

org.springframework.jdbc.support.MetaDataAccessException: Не удалось получить соединение для извлечения метаданных;вложенным исключением является org.springframework.jdbc.CannotGetJdbcConnectionException: не удалось получить соединение JDBC;вложенное исключение: java.sql.SQLException: доступ запрещен для пользователя 'dbuser' @ 'dhcp-etc' (с использованием пароля: ДА)

Это мой файл application.properties:

spring.datasource.url=jdbc:mysql://myhostname:3306/mydatabase
spring.datasource.username=dbuser
spring.datasource.password=dbpassword
#REMOVED: spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect

Использование этого дополнения к строке подключения не имеет никакого эффекта:? UseSSL = false

Мой pom.xml содержит:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.RELEASE</version>
    <relativePath/>
</parent>

// anything related to databases: 

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

// I also tried version 5.1.40
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.11</version> <!-- without this version, same results -->
</dependency>

После правильного подключения с моего компьютера (с помощьюSpring Boot) Я буду продолжать развиваться с экземпляром EC2.

AWS RDS MySQL версия: 5.6.41.

Ответы [ 2 ]

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

Внимательно проверьте файл application.properties, после имени пользователя или пароля БД не должно быть пробела.или вы можете написать так:
spring.datasource.url = jdbc: mysql: // localhost: 3306 / имя_базы? user = dbuser & пароль = dbpassword

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

Позвольте родителю загрузить совместимую библиотеку mysql-коннектора lib, так что попробуйте без версии

...