java - Springboot 1.5.9版本无法连接mysql RDS

标签 java mysql spring spring-boot amazon-rds

我正在使用 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;
        }
    }   

我已在 applications.properties 文件中将日志记录设置为 logging.level=ERROR,INFO,DEBUG,WARN 。 当我启动 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 应用程序的任何帮助。

最佳答案

删除您的 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

关于java - Springboot 1.5.9版本无法连接mysql RDS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54071337/

相关文章:

java - Spark MLlib 模型预测的正确 Java RDD 结构?

java - 将组件添加到 jscrollpane 中的面板后如何从下到上滚动

java - 如何根据重复字段对对象列表进行排序?

php - Mysql根据一个值与多个表进行内连接

php - 如何在用 php 收到 MySQL 结果后,但在编码为 json 之前,按类型对 MySQL 结果进行分组?

java - Spring 数据: how to use repository's inner interfaces outside the outer class?

java - 在 JPA 查询中包含枚举

java - 在MapStruct映射后实现params转换

java - SonarQube 提示 : Either log or rethrow this exception

MySql 查询 - 按日期范围分组?