SpringBoot应用连接AWS RDS PostgreSQL失败求助
解决方案
一、优先解决连接超时问题(SocketTimeoutException)
连接超时是无法访问RDS的核心问题,按以下步骤排查:
- 核对RDS端口号:AWS RDS PostgreSQL默认端口为
5432,你当前配置写的是5442,这大概率是错误,先把spring.datasource.url中的端口改成5432。 - 检查RDS安全组配置:
- 登录AWS控制台,进入RDS实例详情页,找到关联的安全组。
- 编辑安全组的入站规则,添加一条TCP规则,端口范围填
5432,源地址设为你的本地公网IP(可通过curl ifconfig.me获取),或者临时用0.0.0.0/0测试(测试后记得改回具体IP,避免安全风险)。
- 确认RDS公网可访问性:在RDS实例详情的“Connectivity & security”标签下,确保“Publicly accessible”选项设置为
Yes。 - 测试网络连通性:在本地终端执行命令
telnet product-service.***********.amazonaws.com 5432,如果无法连接,说明网络层面存在阻断,重点检查安全组和本地防火墙/代理设置。
二、解决NoClassDefFoundError问题
这个错误是项目缺少Jakarta Validation相关依赖,按你的构建工具添加依赖:
Maven(pom.xml)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency>
Gradle(build.gradle)
implementation 'org.springframework.boot:spring-boot-starter-validation'
注意:先解决连接超时问题,因为如果网络不通,即使依赖修复了也无法连接RDS。
内容的提问来源于stack exchange,提问作者akhtarvahid
相关产品推荐
相关产品推荐

