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

Spring Boot+MySQL项目AWS CICD构建时出现Communications link failure错误

问题排查与解决方案

异常信息:com.mysql.cj.jdbc.exceptions.CommunicationsException: 通信链路失败
最后一次成功向服务器发送数据包是在0毫秒前,驱动尚未收到来自服务器的任何数据包。

1. 修正CodeBuild的VPC网络配置

  • 若你的MySQL是部署在私有VPC内的RDS实例,必须将CodeBuild项目加入与RDS相同的VPC,且选择和RDS互通的私有子网,CodeBuild默认不关联用户私有VPC,走公网无法访问私有网络内的数据库。
  • 确认CodeBuild关联的安全组出站规则开放了3306端口(MySQL默认端口)的访问权限,同时RDS关联的安全组入站规则允许CodeBuild安全组访问3306端口。

2. 核对CodeBuild的数据库配置

  • 确认CodeBuild环境变量中配置的数据库地址、端口、账号、密码和你手动部署到Elastic Beanstalk时使用的配置完全一致,避免出现内网/公网地址填错的问题。
  • 若RDS没有开启公网访问,必须在CodeBuild中填写RDS的VPC内网Endpoint,不能填公网访问地址。

3. 跳过CodeBuild阶段的数据库连接(可选方案)

如果你的CICD流程中CodeBuild阶段仅需要完成代码编译、打包、不依赖真实数据库的单元测试,可以通过以下方式跳过数据库连接校验,避免不必要的生产数据库访问:

  • 打包时添加启动参数覆盖数据源配置:mvn package -Dspring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
  • 单独为测试环境配置H2内存数据库,无需连接真实MySQL

4. 其他检查项

  • 确认RDS实例处于正常运行状态,无重启、维护、资源占满等异常
  • 检查VPC网络ACL规则,未拦截CodeBuild所属子网到RDS所属子网的3306端口流量
  • 确认CodeBuild运行时没有配置错误的代理,导致数据库请求被拦截

内容的提问来源于stack exchange,提问作者Bhavin Panchani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:15:08