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

如何解决Node.js应用在cPanel上连接MySQL时的ECONNREFUSED错误?

解决Node.js使用mysql包连接MySQL时的connect ECONNREFUSED错误
  • 确认MySQL服务状态
    先检查MySQL服务是否正常运行:

    • Linux系统执行 systemctl status mysql 查看状态,未启动则运行 systemctl start mysql 启动服务
    • Windows系统在「服务」列表中找到MySQL,确认其处于运行状态,未启动则手动启动
  • 核对连接参数准确性
    这是最常见的错误根源,逐一检查:

    • host:本地连接用localhost或127.0.0.1,远程连接需填正确的主机IP
    • port:默认是3306,若修改过MySQL端口需对应调整
    • user/password:确保账号密码无拼写错误,避免特殊字符未转义的问题(可先用纯文本密码测试)
    • database:确认数据库名称拼写正确且已存在
  • 排查防火墙与安全组设置

    • 本地防火墙需允许3306端口的入站/出站请求
    • 远程主机的安全组(如云服务商提供的)需开放3306端口给你的应用服务器IP,临时可开放所有IP测试(生产环境禁止)
  • 开启MySQL远程访问权限(针对远程连接场景)

    1. 修改MySQL配置文件(my.cnf/my.ini),将bind-address改为0.0.0.0(允许所有IP访问)或指定你的应用服务器IP,之后重启MySQL服务
    2. 给数据库账号授权远程访问:
      GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'your_app_ip' IDENTIFIED BY 'your_password';
      FLUSH PRIVILEGES;
      
  • 测试网络连通性
    用命令测试目标主机的3306端口是否可达:

    • Linux/macOS执行 nc -zv your_host 3306
    • Windows执行 telnet your_host 3306
      若端口不通,优先排查网络或防火墙问题;端口通则回到应用代码检查
  • 检查代码与包版本
    确保mysql包安装正确,且连接代码无语法错误,示例如下:

    const mysql = require('mysql');
    const connection = mysql.createConnection({
      host: 'localhost',
      user: 'root',
      password: 'your_password',
      database: 'your_db'
    });
    
    connection.connect(err => {
      if (err) {
        console.error('连接失败: ' + err.stack);
        return;
      }
      console.log('已连接,连接ID: ' + connection.threadId);
    });
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 09:45:10