JPA 无法从 Beanstalk 连接到 AWS RDS,但它在本地工作

JPA cannot connect to AWS RDS from Beanstalk but it works locally

我正在将 Java 8 Spring 启动 Web 应用程序部署到 AWS Elastic Beanstalk。我有一个关联的 RDS MySQL 实例并配置了相关的连接详细信息。

当 运行 应用 本地 在我的机器上时,连接有效,因为我为 RDS 服务器设置了以下路由配置:

如上所述,还为与我的 EC2 实例关联的安全组添加了路由。

因此,运行 mysql 在 EC2 机器上 工作 并且可以访问数据库。

将应用程序部署到 Beanstalk 时会出现问题,它会在 EC2 实例中实现。应用程序崩溃,因为它在尝试连接到 MySQL RDS 实例时遇到连接被拒绝的错误:

这似乎没有任何意义。 该数据库可从 EC2 实例(通过 mysql 命令验证)和 AWS 外部访问,因此唯一剩下的原因是错误配置了 Spring 启动应用程序属性。

这似乎也不是问题,因为当 运行 它在本地时,在我的机器上,应用 没有问题 连接到 RDS 实例并且运行 通常使用生产 MySQL 服务器。

我有单独的 application-development.propertiesapplication-production.properties 文件,但我将相关属性设置为相同的值:

spring.datasource.url                           = jdbc:mysql://XXXXXX.rds.amazonaws.com:3306/ebdb?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.username                      = XXXXXX
spring.datasource.password                      = XXXXXX

spring.datasource.driver-class-name             = com.mysql.cj.jdbc.Driver

关于为什么我的应用程序可以 运行 在本地但部署到 Beanstalk 时却不是的任何指示?

重新创建 Beanstalk 环境和 RDS 实例似乎可以解决问题。