Невозможно подключиться к mysql RDS из версии Springboot 1.5.9 - PullRequest
0 голосов
/ 07 января 2019

Я использую версию AWS RDS mysql 5.7.23. Я пытаюсь установить соединение MySQL из класса конфигурации используя код ниже.

 @Configuration
    public class DbConnection{
    private final org.slf4j.Logger logger = LoggerFactory.getLogger(this.getClass());
    @Bean
        public Connection getConnection() {
            Connection con = null;
            try {
                Class.forName("com.mysql.jdbc.Driver");
                String jdbc_url = "jdbc:mysql://myhost:3306/myDB?autoReconnect=true&useSSL=false&user=user123&password=user123";
                con = DriverManager.getConnection(jdbc_url);
                return con;
            } catch (Exception e) {
                logger.info("ERROR " + e.getMessage(), e);
            }
            return con;
        }
    }   

Я настроил запись как logging.level=ERROR,INFO,DEBUG,WARN в файле Applications.properties. Когда я запускаю приложение Springboot, его исключение

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
Caused by: java.sql.SQLException: Access denied for user 'user123'@'myhostIP' (using password: YES)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3558)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3490)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:919)
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3996)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1284)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2287)

Я использую зависимость, а также без какой-либо версии, чтобы Springboot сам выбрал версию.

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

Я могу подключить один и тот же экземпляр с помощью отдельной Java-программы, используя те же данные.

Любая помощь в этом, почему я не могу подключиться с приложением Springboot.

1 Ответ

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

Удалите класс DbConfiguration и используйте автоконфигурацию Spring Boot https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-sql.html#boot-features-connect-to-production-database, добавив следующее к application.properties:

spring.datasource.url=jdbc:mysql://myhost/myDB
spring.datasource.username=user123
spring.datasource.password=user123
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
...