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

如何修复使用Node.js连接远程MySQL时出现的连接超时错误

解决cPanel迁移后远程MySQL连接超时问题

针对你遇到的cPanel迁移后Node.js和MySQL Workbench均无法远程连接MySQL的问题,按以下步骤排查解决:

一、优先排查端口与SSL强制配置

  1. 测试端口连通性
    用终端执行命令测试目标主机的3306端口是否能访问:

    nc -zv 你的主机地址 3306
    # 或Windows用telnet:telnet 你的主机地址 3306
    

    如果不通,说明端口被主机商防火墙封禁,直接联系主机商开放3306,或确认是否迁移后改用了其他远程端口(部分主机商会将远程MySQL端口改为33060等)。

  2. 添加SSL连接参数
    新版cPanel安装SSL后可能强制MySQL使用SSL连接,修改你的Node.js连接代码,添加SSL配置:

    import mysql from "mysql2"
    
    const pool = mysql.createPool({
      host: '******',
      user: '*********',
      password: '*****',
      database: '******',
      connectionLimit: 100,
      port: 3306,
      ssl: {
        rejectUnauthorized: false // 主机商自签证书需开启此选项,生产环境建议配置官方证书
      }
    }).promise()
    
    pool.getConnection((err, connection) => {
      if (err) {
        console.error("连接错误详情:", err); // 必须添加错误打印,定位具体问题
        return;
      }
      console.log("Connected")
    })
    

二、修复MySQL用户权限问题

  1. 检查远程用户的访问权限
    登录cPanel的phpMyAdmin,使用你配置的远程连接用户(不要用root)登录,确认:

    • 用户拥有对应数据库的SELECT/INSERT/UPDATE/DELETE等权限
    • 用户的访问范围包含你的本地IP,或设置为%(允许所有IP,测试用,生产环境建议限制IP)
  2. 解决root权限不足问题
    你遇到的Access denied for user root@localhost是迁移时root权限被重置导致,无法自行通过phpMyAdmin修复,直接联系主机商重置root用户权限,或让他们帮你确认并配置远程用户的访问权限。

三、验证cPanel白名单配置

重新登录cPanel的「Remote MySQL」页面,确认你的本地IP已正确添加,部分主机商会在迁移后清空白名单,需要重新添加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 17:53:29