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

无法在本地连接AWS RDS,但Elastic Beanstalk上的Laravel应用可正常连接

解决本地无法连接AWS RDS的排查步骤
  • 检查RDS专属安全组的入站规则
    你之前修改的是EC2实例的安全组,但RDS有自己独立的安全组。进入RDS控制台→目标数据库→「连接性与安全性」→找到关联的安全组,在该安全组的入站规则中添加:

    • 类型:MySQL/Aurora(或对应数据库端口)
    • 来源:你的本地公网IP(格式如x.x.x.x/32)
    • 端口:RDS使用的端口(默认3306)
  • 确认本地公网IP的准确性
    动态IP会随网络环境变化(比如重启路由器、切换网络),用以下方式确认当前IP:

    • Linux/macOS终端执行:curl ifconfig.me
    • Windows命令提示符执行:nslookup myip.opendns.com resolver1.opendns.com
      确保安全组里的IP和当前IP完全一致,若不一致则更新规则。
  • 检查VPC网络ACL的规则
    VPC网络ACL是无状态防火墙,需同时配置入站和出站规则:

    • 入站规则:允许3306端口(或RDS端口)从你的本地IP访问
    • 出站规则:允许3306端口的返回流量(或临时设置为允许所有出站流量测试)
      进入VPC控制台→「网络ACL」→找到RDS所在子网关联的ACL,调整对应规则。
  • 验证RDS端点与端口的正确性
    从RDS控制台复制完整的「端点」和「端口」,确保本地数据库客户端中填写的是这两个值,不要使用Elastic Beanstalk的内部环境变量(应用能访问是因为内网解析,本地需要公网端点)。

  • 排查本地网络限制
    本地路由器、公司防火墙或VPN可能屏蔽了3306端口:

    • 尝试切换至手机热点网络,重新连接测试
    • 关闭本地防火墙或安全软件,临时测试是否能连接
  • 确认数据库用户的访问权限
    应用使用的数据库用户可能仅允许从EC2内网IP访问(如user@10.0.%.%),需修改用户权限允许本地IP访问:

    1. 通过EC2实例连接RDS(应用能正常连接,说明EC2可以访问RDS)
    2. 执行SQL命令:
      GRANT ALL PRIVILEGES ON 你的数据库名.* TO '你的用户名'@'你的本地公网IP' IDENTIFIED BY '你的密码';
      FLUSH PRIVILEGES;
      
      若测试需要,可临时设置为允许所有IP访问(注意后续修改回限制IP以保障安全):
      GRANT ALL PRIVILEGES ON 你的数据库名.* TO '你的用户名'@'%' IDENTIFIED BY '你的密码';
      FLUSH PRIVILEGES;
      
  • 检查RDS所在子网的公网网关配置
    若RDS设置为「公开可访问」,但所在子网未关联公网网关,仍无法从公网访问:
    进入VPC控制台→「子网」→找到RDS所在子网→查看「路由表」,确认路由表中有指向公网网关(igw-xxx)的路由条目。

内容的提问来源于stack exchange,提问作者Heisenberg W

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:30:53