You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot部署到EC2后无法连接同VPC下的AWS RDS MySQL问题

问题排查:Spring Boot部署EC2后无法连接同VPC的AWS RDS MySQL

问题详情

  • 运行在3306端口的AWS RDS(MySQL)实例,安全组已允许所有来源流量
  • 本地Spring Boot应用可正常连接该RDS,但将同版本Java JRE编译的Jar包部署到EC2后,无法建立数据库连接
  • EC2的入站、出站规则均允许所有流量,且与RDS处于同一VPC
  • EC2上通过CLI可正常连接RDS,尝试开放所有服务流量后问题仍未解决
  • 执行telnet mysqlIP 3306得到如下结果:
    telnet连接RDS 3306端口的结果

实用排查方向

  • 核对应用配置文件
    确认EC2上应用的application.properties/application.yml中数据库连接URL、用户名、密码是否完全正确,有没有误写本地测试地址;同时检查是否配置了代理或自定义DNS,导致Java应用解析RDS域名时和系统CLI逻辑不一致。
  • 检查Java层面的网络限制
    部分EC2镜像自带的java.policy文件可能限制了网络出站,查看该文件是否存在针对3306端口的拦截规则;另外检查系统防火墙(如iptables、firewalld),确认是否有针对Java进程的特殊拦截策略。
  • 验证RDS的连接要求
    查看RDS是否开启了SSL强制连接,本地应用可能配置了SSL参数但EC2上的应用遗漏;如果用了IAM数据库认证,确认EC2的IAM角色是否有对应权限,且Java应用是否正确配置了IAM认证的驱动参数。
  • 排查Java环境兼容性
    虽然用了相同版本的JRE,但要确认EC2上的JRE发行版(如OpenJDK vs Oracle JDK)是否和本地一致;同时检查MySQL驱动版本,是否存在EC2环境下的兼容性问题。
  • 抓包对比分析
    在EC2上执行tcpdump port 3306抓包,对比CLI连接和Java应用连接的数据包,看Java应用是否正常发送了连接请求,或者RDS是否返回了异常响应。

内容的提问来源于stack exchange,提问作者perito Perito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 15:01:02