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

Node.js无法建立MySQL连接,仅未启动XAMPP MySQL服务时报错

问题根源分析

你遇到的ECONNREFUSED错误核心原因很明确:你的Node.js程序尝试连接的MySQL服务没有处于运行状态。

你提到启动XAMPP的MySQL服务后就能正常连接,这说明XAMPP集成的MySQL服务是正常可用的,但你本地的独立MySQL服务(如果有的话)并没有启动——或者你代码里的连接配置和实际运行的MySQL服务不匹配。

具体解决步骤

1. 确认MySQL服务是否在运行

  • Windows系统:按下Win + R输入services.msc打开服务管理器,找到名称为MySQL(或者可能是MySQL80这类带版本号的)的服务,查看它的状态:
    • 如果状态是“已停止”,右键点击选择启动;
    • 为了避免每次手动启动,你可以右键选择属性,把启动类型改成自动。
  • 如果你是用独立安装包安装的MySQL(而非XAMPP集成版),务必确保这个独立服务处于运行状态,而不是只依赖XAMPP来启动MySQL。

2. 核对连接配置的准确性

你当前的代码没有指定port参数,默认会用3306端口。如果你之前尝试更换过MySQL的端口,一定要在连接配置里明确指定:

var mysql = require('mysql');
var con = mysql.createConnection({
  host: "localhost",
  port: 3307, // 替换成你实际使用的MySQL端口
  user: "myusername",
  password: "mypassword"
});

con.connect(function(err) {
  if (err) throw err;
  console.log("Connected!");
});

同时要确认user和password是对应你正在运行的MySQL服务的账号(比如XAMPP的MySQL默认用户是root,密码可能为空或你自己设置的,而独立安装的MySQL可能有不同的账号配置)。

3. 排查端口占用或防火墙问题

  • 检查目标端口是否被其他程序占用:在命令提示符里执行netstat -ano | findstr :3306(把3306换成你的MySQL端口),如果输出里有其他进程ID,说明端口被占用,可以结束对应进程,或者修改MySQL的端口。
  • 确认防火墙没有拦截MySQL的端口:虽然你用XAMPP能连,但如果是独立MySQL服务,可能需要在防火墙里添加允许MySQL端口通信的规则。

总结

你之前更换端口没用,大概率是因为:要么更换的端口对应的MySQL服务没启动,要么代码里没同步更新port参数。只要确保MySQL服务在运行,且代码配置和服务的host、port、账号信息完全匹配,就能解决这个连接问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:19:16