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

Node.js mysql2模块无法连接数据库问题求助

解决Node.js mysql2连接数据库时出现ECONNREFUSED ::1:3306的问题

问题分析

报错connect ECONNREFUSED ::1:3306说明mysql2尝试通过IPv6地址::1(localhost的IPv6形式)连接3306端口,但该端口未开放连接。你能通过终端用相同用户连接,说明MySQL服务正常,但监听地址与Node.js解析的localhost地址不匹配。

解决方案

  • 强制使用IPv4地址连接
    将连接配置中的host从localhost改为127.0.0.1,直接指定IPv4回环地址,避免系统将localhost解析为IPv6:

    const mysql = require('mysql2');
    const connection = mysql.createConnection({
      host: '127.0.0.1',
      user: '你的数据库用户名',
      password: '你的数据库密码',
      database: '目标数据库名'
    });
    
  • 配置MySQL监听IPv6地址
    若需要保留localhost作为host,可修改MySQL配置使其支持IPv6:

    1. 打开MySQL配置文件(Linux/macOS为/etc/my.cnf或/etc/mysql/my.cnf,Windows为my.ini)
    2. 找到bind-address配置项,修改为bind-address = ::(允许监听所有IPv4和IPv6地址)
    3. 重启MySQL服务,重新测试连接
  • 检查系统hosts文件解析
    验证系统hosts文件中localhost的解析规则:

    • Linux/macOS:编辑/etc/hosts,确保存在127.0.0.1 localhost和::1 localhost两条记录(若只需要IPv4,可临时注释::1 localhost)
    • Windows:编辑C:\Windows\System32\drivers\etc\hosts,操作同上

额外排查点

删除Git相关文件后出现问题,可检查项目中是否有被Git管理的环境配置文件(如.env)被误删,导致数据库连接参数(尤其是host)被重置或丢失,重新补全正确配置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 06:22:46