从ECS Fargate容器连接EC2上的MySQL数据库失败求助
ECS Fargate(awsvpc模式)连接EC2 MySQL失败排查方案
- 检查Fargate任务安全组出站规则:仅配置EC2入站规则不够,Fargate所属安全组需允许出站访问MySQL默认端口
3306,哪怕同属一个VPC,出站规则受限也会导致连接失败。 - 优先使用EC2私有IP连接:本地能连接大概率用了EC2公网IP,但Fargate在VPC内应当使用EC2私有IP发起连接。若坚持用公网IP,需确保Fargate任务有公网访问能力(公有子网分配公有IP/弹性IP,或私有子网配置NAT网关)。
- 验证MySQL绑定地址配置:查看EC2上的MySQL配置文件(如
my.cnf),确认bind-address字段未设为127.0.0.1——该配置会限制MySQL仅接受本地连接,需改为0.0.0.0或EC2的私有IP,修改后重启MySQL服务。 - 检查VPC网络ACL规则:网络ACL为双向规则,除了允许Fargate到EC2的入站流量,还要允许EC2到Fargate的出站响应流量(对应
3306端口回包),避免因ACL拦截响应导致连接失败。 - 在Fargate容器内测试连通性:执行命令
telnet <EC2私有IP> 3306或nc -zv <EC2私有IP> 3306,判断是网络层面的问题还是MySQL服务配置问题。 - 确认MySQL用户访问权限:本地能连接的用户可能仅授权了你的公网IP访问,需确保MySQL用户权限为
username@'%'或username@<Fargate子网网段>,允许VPC内的Fargate任务发起连接。
内容的提问来源于stack exchange,提问作者Sagar Budhathoki Magar
相关产品推荐
相关产品推荐

