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

Node.js无法连接Windows本地MySQL数据库,遭遇ECONNREFUSED错误

解决Node.js连接Windows本地MySQL时的ECONNREFUSED错误

看你的错误信息:Error: connect ECONNREFUSED ::1:3306,这里的::1是IPv6的本地回环地址,说明Node.js把localhost解析成了IPv6,但你的MySQL大概率没开启IPv6监听,只在IPv4的127.0.0.1上等待连接,所以才会被拒绝。

最快解决办法:强制用IPv4连接

直接把代码里的host: 'localhost'改成host: '127.0.0.1',让Node.js通过IPv4发起连接,修改后的代码如下:

const mysql = require('mysql');
const conn  = mysql.createConnection({
    host: '127.0.0.1', // 替换原localhost
    user: 'root',
    password: '********',
    database: "our_library",
    port: 3306
});

conn.connect((error) => {
    if(error){
        throw error;
        return;
    }
    console.log("Connection established successfully");
});

conn.end((error) => {

});

纠正socketPath的误解

Windows上的MySQL默认不使用Unix socket(这是Linux/macOS环境的特性),所以你完全不需要找socket路径,这个思路是错的,别在这上面浪费时间。

额外排查点(如果改host后仍报错)

  • 确认MySQL服务正在运行:打开Windows服务管理器,找到MySQL服务,检查状态是否为“正在运行”,未运行则手动启动。
  • 检查端口占用:打开命令行执行 netstat -ano | findstr :3306,确认3306端口没有被其他程序占用。
  • 验证root用户权限:登录MySQL控制台,执行 SELECT user, host FROM mysql.user WHERE user='root';,确保存在host为localhost或127.0.0.1的记录;如果没有,执行 GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '你的密码'; 授权,再执行 FLUSH PRIVILEGES; 生效。
  • 开启IPv6监听(可选):如果想继续用localhost,可以修改MySQL配置文件(一般在C:\ProgramData\MySQL\MySQL Server X.X目录下的my.ini),找到bind-address配置项,改成bind-address = ::,然后重启MySQL服务,使其同时监听IPv4和IPv6地址。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 21:30:24