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

本地通过Node.js连接AWS EC2上MySQL数据库遇连接拒绝错误求助

解决本地Node.js连接AWS EC2 MySQL的连接拒绝问题

错误信息

errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '15.188.51.165', port: 3306, fatal: true

你的连接代码

const con = mysql.createConnection({
      host: "********.com",
      user: "root",
      password: "******",
      database : '***',
      port:'3306',
      multipleStatements: true
    });

排查与解决步骤

  • 检查EC2安全组规则
    登录AWS控制台,进入EC2实例详情页,找到关联的安全组,编辑入站规则:添加一条MySQL/Aurora类型的规则,端口3306,源设置为你的本地公网IP(测试阶段可临时用0.0.0.0/0,生产环境务必限制IP)。

  • 修改MySQL绑定地址
    登录EC2实例,找到MySQL配置文件(常见路径/etc/mysql/mysql.conf.d/mysqld.cnf或/etc/my.cnf),将bind-address的值改为0.0.0.0(允许所有IP访问),然后重启MySQL服务:sudo systemctl restart mysql。

  • 配置MySQL用户远程访问权限
    在EC2上登录MySQL,执行以下命令授权root用户从你的本地IP访问:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'你的本地公网IP' IDENTIFIED BY '你的数据库密码';
    FLUSH PRIVILEGES;
    

    测试阶段可临时允许所有IP访问(不建议生产环境使用):

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的数据库密码';
    FLUSH PRIVILEGES;
    
  • 检查EC2本地防火墙
    如果EC2实例开启了ufw或iptables,需放行3306端口:

    • ufw:sudo ufw allow 3306 && sudo ufw reload
    • iptables:sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT,执行sudo iptables-save > /etc/iptables/rules.v4保存规则(不同系统保存命令可能有差异)。
  • 验证域名解析正确性
    在本地执行ping ********.com,确认解析出的IP是15.188.51.165,如果解析错误,直接改用IP地址测试连接。

  • 确认MySQL服务状态
    在EC2上执行sudo systemctl status mysql,确保MySQL服务处于运行状态,未启动则执行sudo systemctl start mysql。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 08:54:19