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

Node.js后端连接AWS RDS MySQL数据库失败求助

排查本地无法解析AWS RDS域名并连接的问题

1. 优先排查本地DNS解析问题

报错getaddrinfo ENOTFOUND核心是域名解析失败,先验证本地能否正确解析RDS端点:

  • 执行命令测试解析:
    nslookup databaseX.xxxxxxxxxxx.eu-west-3.rds.amazonaws.com
    # 或
    dig databaseX.xxxxxxxxxxx.eu-west-3.rds.amazonaws.com
    
    如果没有返回RDS实例的公网IP,说明DNS解析异常。
  • 临时切换公共DNS服务器(如8.8.8.8或1.1.1.1),修改本地网络的DNS配置后重新测试解析和连接。
  • 检查本地hosts文件,确认没有错误映射该RDS域名的条目。

2. 检查本地网络防火墙/代理

  • 临时关闭本地防火墙(Windows Defender防火墙、macOS防火墙等),测试Node.js和mysql命令能否连接。
  • 如果使用了VPN、公司内网代理,确认代理规则允许访问RDS的3306端口,或切换到无代理网络测试。

3. 验证RDS实例的网络配置

  • 确认RDS实例公网可访问:在AWS控制台进入RDS实例详情页,查看「连接性」配置,确保「公网可访问」设置为「是」。
  • 检查VPC网络ACL:确保入站规则允许3306端口的流量(源IP设为你的本地公网IP或0.0.0.0/0),出站规则允许所有或对应端口的响应流量。
  • 重新核对安全组:虽然你已开放所有连接,但要确认安全组的入站规则明确允许3306端口,且该安全组已关联到目标RDS实例。

4. 检查Node.js连接配置

  • 直接复制AWS控制台中的RDS端点地址,替换代码中的host字段,避免拼写错误(如少段、大小写错误)。
  • 简化连接代码排除其他干扰,用最基础的测试代码验证:
    const mysql = require('mysql');
    const conn = mysql.createConnection({
      host: 'databaseX.xxxxxxxxxxx.eu-west-3.rds.amazonaws.com',
      user: '你的数据库用户名',
      password: '你的数据库密码',
      database: '目标数据库名'
    });
    
    conn.connect(err => {
      if (err) {
        console.error('连接失败:', err);
        return;
      }
      console.log('连接成功');
    });
    

5. 验证本地mysql命令的参数

确保使用正确的连接参数,避免参数遗漏:

mysql -h databaseX.xxxxxxxxxxx.eu-west-3.rds.amazonaws.com -u 你的用户名 -p

输入密码后观察报错,如果仍提示解析失败,可确认问题出在本地网络或DNS层面。

内容的提问来源于stack exchange,提问作者João Denari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:57:07