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

Node连接本地MySQL 8.0报错ECONNREFUSED 仅Node环境出现该问题如何排查

MySQL 8.0 Node连接ECONNREFUSED(::1:3306) 排查方向
  • MySQL监听地址验证
    该报错核心是Node尝试连接IPv6回环地址::1的3306端口被拒绝,80%以上的同类问题是因为MySQL默认仅监听IPv4回环地址127.0.0.1,未开启IPv6监听。
    执行命令netstat -an | grep 3306查看监听地址,若无:::3306或::1.3306类的IPv6监听记录即可确认。
    临时解决方案:将数据库连接配置中的host从localhost改为127.0.0.1,强制使用IPv4连接。
    永久解决方案:修改MySQL配置文件my.cnf的bind-address参数为::,127.0.0.1,同时支持IPv4、IPv6回环地址监听,修改后重启MySQL服务生效。
  • Node域名解析优先级验证
    Node v17及以上版本默认遵循RFC 6724规范,优先将localhost解析为IPv6地址,而Python等其他语言默认优先解析为IPv4地址,这就是相同配置下Python可连接、Node连接失败的核心原因。
    可执行以下测试脚本确认解析结果:
    const dns = require('dns');
    dns.lookup('localhost', (err, address, family) => {
      console.log('localhost解析结果:%j,地址族:IPv%s', address, family);
    });
    
    若输出为::1即可确认,也可在数据库连接配置中新增family: 4参数,强制Node使用IPv4解析域名,mysql、mysql2包均支持该配置。
  • MySQL用户主机权限排查
    该场景出现概率较低,因为权限不足通常返回Access Denied报错而非连接拒绝。可执行SQLSELECT user,host FROM mysql.user WHERE user='你的数据库用户名';确认是否存在用户名@::1的授权记录,若缺失可补充对应授权。
  • 系统hosts配置排查
    查看/etc/hosts文件中localhost的映射规则,确认是否同时存在127.0.0.1 localhost和::1 localhost两条配置,若有异常可修正后重试。
  • 本地网络规则排查
    确认Mac系统防火墙、第三方安全软件未拦截IPv6回环地址的3306端口连接,该场景概率极低,可作为最后排查项。

内容的提问来源于stack exchange,提问作者L. Nelson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 02:54:06