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

Amazon EC2 Ubuntu 16.04实例无法连接RDS MySQL数据库求助

排查EC2无法连接RDS MySQL的常见问题

遇到这种本地能正常连接但EC2实例连不上的数据库问题,我之前也踩过不少类似的坑,咱们一步步来排查最容易忽略的几个关键点:

  • 安全组配置是头号嫌疑
    先登录RDS控制台找到你的目标实例,查看「Connectivity & security」板块里关联的安全组,进入安全组的入站规则配置页面:

    • 一定要确认有没有添加允许EC2实例所在的安全组(或者EC2的公网/私网IP)访问3306端口的规则。很多时候大家只给本地IP开了权限,完全忘了给EC2实例开放访问权限。
    • 顺带检查下EC2实例的安全组出站规则,默认是全开放的,但如果自定义过规则,要确保允许出站访问3306端口。
  • VPC网络连通性验证
    如果EC2和RDS在同一个VPC环境下:

    • 确认两者的子网是否有正确的路由表连通,比如RDS部署在私有子网、EC2在公有子网的话,要保证路由表能让EC2正常访问到RDS的私有IP。
    • 查看RDS的「Public accessibility」设置:如果EC2用私网访问RDS,这个选项可以设为No;如果要通过公网访问RDS,必须把这个选项设为Yes。(更推荐私网访问,安全性更高)
  • DNS解析是否正常
    在EC2实例上执行命令 nslookup ********.rds.amazonaws.com,看看能不能返回RDS实例的正确IP地址。如果解析失败,大概率是EC2的DNS配置出了问题,比如用了自定义DNS但没配置AWS的VPC DNS服务(通常是VPC网段的第二个IP,比如10.0.0.2这类)。

  • EC2本地防火墙限制
    检查EC2实例自身的防火墙规则,比如Linux系统的iptables或者ufw:

    • 执行 sudo iptables -L -n 查看是否存在禁止出站访问3306端口的规则。
    • 可以临时关闭防火墙(比如 sudo systemctl stop firewalld)测试连接,确认问题后再重新配置合规的防火墙规则。
  • RDS实例状态与端口验证

    • 确认RDS实例处于「Available」状态,没有在维护、重启或者故障中(直接去RDS控制台查看实例状态即可)。
    • 检查RDS的配置端口,默认是3306,但如果修改过端口,连接命令要加上 -P 端口号 参数,比如 mysql -h xxx.rds.amazonaws.com -P 3307 -u 用户名 -p 数据库名。

内容的提问来源于stack exchange,提问作者Swapnil B.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:24:43