我有一个带有spring-boot-starter-data-jpa的springbot 1.x应用程序。此应用程序具有application.properties以及用于连接的数据,例如
spring.datasource.url=jdbc:mysql://localhost/mydb
spring.datasource.username=mydb
spring.datasource.password=mydb
我能够将此应用程序部署到aws弹性beantalk中,并且一切正常。 弹性beantalk与用于应用程序EB.properties的配置文件EB一起运行
-Dspring.profiles.active=EB
数据源配置设置为弹性beantalk环境属性,例如
SPRING_DATASOURCE_PASSWORD --> password_into_beanstalk
SPRING_DATASOURCE_URL --> jdbc:mysql://rds_into_aws/rds_into_aws
SPRING_DATASOURCE_USERNAME --> username_into_beanstalk
我将此应用程序迁移到springboot2.X,但是当部署到弹性beantalk中时,无法连接到数据库。
org.springframework.jdbc.support.MetaDataAccessException: Could not get Connection for extracting meta-data; nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
正在运行的配置文件也是EB,我可以查看日志
[localhost-startStop-1] c.m.e.h.a.c.SpringServletInitializer : The following profiles are active: EB
我猜想beantalk的环境属性不会覆盖数据源配置。
如果我将rds数据源值设置为application.properties,则该应用程序可以连接到数据库。
任何人都有相同的问题或知道发生了什么事