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

使用Sequelize连接XAMPP本地MySQL数据库遭拒绝的问题

Sequelize连接XAMPP本地MySQL失败:ECONNREFUSED 127.0.0.1:3306 解决方法

问题描述

使用XAMPP运行本地MySQL数据库,通过Sequelize代码连接时触发报错:

Unable to connect to db ConnectionRefusedError [SequelizeConnectionRefusedError]: connect ECONNREFUSED 127.0.0.1:3306

已尝试修改端口、密码及用户名,问题仍未解决。

用户使用的Sequelize代码:

import { Sequelize } from "sequelize";

const user_auth_db = new Sequelize('db_name', 'root', '', {
    host: 'localhost',
    dialect: 'mysql',
    port: "3306",
});

try {
    await user_auth_db.authenticate();
    console.log("Connection has been established succesfully");
} catch (error) {
    console.log("Unable to connect to db", error);
}

错误详情:

parent: Error: connect ECONNREFUSED 127.0.0.1:3306
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1494:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 3306,
    fatal: true
  },

排查与解决步骤

  • 确认XAMPP的MySQL服务状态
    打开XAMPP控制面板,检查MySQL模块是否显示为Running。如果没启动,点击「Start」按钮启动服务;若启动失败,点击「Logs」查看具体报错,排查端口占用或配置冲突。

  • 核对MySQL实际监听端口
    XAMPP的MySQL可能未使用默认3306端口。点击XAMPP控制面板中MySQL模块的「Config」→「my.ini」,查找port配置项确认实际端口号。然后修改Sequelize配置中的port为实际端口(注意用数字类型,不要字符串):

    port: 3306, // 替换为实际端口,比如3307
    
  • 验证MySQL账号密码正确性
    点击XAMPP中MySQL模块的「Admin」打开phpMyAdmin,登录时使用的账号密码就是Sequelize需要的参数。如果root用户无密码,保持Sequelize配置中的密码为'';若设置过密码,填入正确值。

  • 替换host为127.0.0.1
    部分环境下localhost会解析到IPv6地址::1导致连接失败,把Sequelize配置中的host改为'127.0.0.1'再尝试。

  • 确认目标数据库已创建
    在phpMyAdmin中检查是否存在名为db_name的数据库,不存在的话先创建再重新运行连接代码。

  • 检查本地防火墙设置
    本地防火墙可能拦截了Node.js访问3306端口,暂时关闭防火墙测试,若能连接则需给Node.js添加端口访问权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 22:27:21