【发布时间】:2021-08-01 08:48:15
【问题描述】:
我正在将 Java 8 Spring Boot Web 应用程序部署到 AWS Elastic Beanstalk。我有一个关联的 RDS MySQL 实例并配置了相关的连接详细信息。
在我的机器上本地运行应用程序时连接有效,因为我为 RDS 服务器设置了以下路由配置:
如上所述,还会为与我的 EC2 实例关联的安全组添加路由。
因此,在 EC2 机器上运行mysql工作,可以访问数据库。
将应用程序部署到 Beanstalk 时会出现此问题,并在其中将其实施到 EC2 实例中。应用程序崩溃,因为它在尝试连接到 MySQL RDS 实例时遇到连接被拒绝错误:
这似乎没有任何意义。
该数据库可从 EC2 实例(通过 mysql 命令验证)和 AWS 外部访问,因此唯一剩下的原因是错误配置了 Spring Boot 应用程序属性。
这似乎也不是问题,因为在本地运行它时,在我的机器上,该应用没有问题连接到 RDS 实例并使用生产 MySQL 服务器正常运行。
我有单独的 application-development.properties 和 application-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 时不能运行的任何指示?
【问题讨论】:
标签: amazon-web-services spring-boot amazon-ec2 amazon-elastic-beanstalk amazon-rds