解决同安全组Amazon EC2无法连接RDS MySQL数据库问题
解决EC2实例连接Amazon RDS MySQL数据库的问题
问题现象
在EC2实例的Shell中执行连接命令:
mysql -h database-1.clyum4kwu2lg.us-west-2.rds.amazonaws.com -u {username} -p
收到错误:
Can't connect to MySQL server on 'database-1.clyum4kwu2lg.us-west-2.rds.amazonaws.com:3306' (110)
当前安全组配置:
- 入站规则:
- SSH(22端口):允许
71.38.46.66/32访问 - MySQL/Aurora(3306端口):允许
71.38.46.66/32访问 - 自定义TCP(8080端口):允许
0.0.0.0/0访问
- SSH(22端口):允许
- 出站规则:
- 所有流量:允许
0.0.0.0/0访问
- 所有流量:允许
解决方案
1. 修改安全组入站规则(核心步骤)
当前MySQL端口的入站规则仅允许你本地的公网IP(71.38.46.66/32)访问,但EC2实例使用的是VPC内网IP,不在这个范围内。需要将MySQL端口的源地址改为当前安全组的ID,这样同安全组内的EC2实例就能正常访问RDS:
- 登录AWS控制台,进入EC2的安全组页面
- 找到EC2和RDS共用的安全组,编辑入站规则
- 找到MySQL/Aurora(3306端口)的规则,将源地址从
71.38.46.66/32替换为该安全组的ID(格式类似sg-xxxxxx) - 保存规则
2. 验证基础配置
- 确认RDS实例与EC2实例处于同一VPC(二者同安全组通常已满足此条件,可快速核对)
- 检查RDS实例的「公有可访问性」:如果仅通过内网连接,设为「否」即可;若需同时支持公网访问则设为「是」,内网连接优先推荐使用RDS的内网地址
3. 测试连接
修改规则后,回到EC2的Shell中重新执行原连接命令,确认是否能正常登录MySQL。
内容的提问来源于stack exchange,提问作者user3794648
相关产品推荐
相关产品推荐

