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

Serverless项目部署AWS后外部数据库无法访问问题求助

解决AWS部署后MySQL连接被拒绝的问题

可能的原因及解决方案

1. 检查AWS网络出口配置

AWS Lambda或EC2实例的网络权限可能限制了外部数据库访问:

  • 确认Lambda所在VPC的安全组是否允许出站访问MySQL默认端口(3306),目标范围需包含数据库服务商的IP段或域名。
  • 若使用NAT网关,核实路由表配置是否正确,确保外部请求能正常转发。
  • 检查AWS账户的出站防火墙规则,确认未限制对数据库地址的访问。

2. 验证数据库白名单设置

本地能访问不代表AWS服务器IP在数据库白名单内:

  • 查看数据库服务商的白名单配置,添加AWS服务器的公网IP(或VPC出口IP)到允许列表。
  • 注意:VPC内的Lambda使用私有IP,需确认数据库是否允许对应私有IP段访问;无VPC的Lambda使用AWS公网IP段,可能需要联系服务商添加对应区域的IP段。

3. 排查ORM配置与部署环境一致性

本地正常不代表部署环境配置无误:

  • 确认orm.config.ts中的数据库地址、用户名、密码在部署环境中未被覆盖或篡改。
  • 在AWS环境中(比如通过同VPC的EC2实例)直接执行MySQL命令,模拟Lambda的网络环境测试:
    mysql -h cp.myhost.com -u myuser -p
    
    若该命令失败,说明是网络或白名单问题;若成功,再排查ORM的连接逻辑。

4. 测试网络连通性

数据库服务商未收到请求,大概率是中间链路被拦截:

  • 用telnet或tcping测试AWS服务器到数据库地址的3306端口是否连通:
    telnet cp.myhost.com 3306
    
    若不通,联系AWS或网络服务商排查链路问题;若通,再检查数据库端的连接日志。

5. 调整Lambda网络模式

若VPC内的Lambda无法连接,可尝试:

  • 在业务允许的情况下,将Lambda切换到无VPC模式,使用AWS公网出口访问数据库,测试是否能正常连接。
  • 确认VPC子网为公有子网,或路由表已正确指向NAT网关。

内容的提问来源于stack exchange,提问作者Arco Voltaico

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 09:49:54