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

通过SSH连接本地数据库时报错2003 - Can't connect to MySQL server on 'localhost' (10061)

2003 - Can't connect to MySQL server on 'localhost' (10061) 报错解决方案

你触发的报错截图如下:
报错截图
该报错本质是MySQL服务未正常响应TCP连接请求,结合SSH隧道连接本地数据库的场景,按以下步骤排查即可解决:

步骤1:确认MySQL服务运行状态

  • Windows系统:按下Win+R输入services.msc打开服务管理器,找到名称为MySQL或带版本后缀的对应服务(如MySQL80),确认服务状态为「正在运行」,未运行则右键点击启动即可。若服务启动失败,可查看MySQL错误日志定位启动故障点。
  • Linux/macOS系统:终端执行命令查看服务状态:
    # Debian/Ubuntu系
    sudo systemctl status mysql
    # CentOS/RHEL系
    sudo systemctl status mysqld
    
    服务未运行则执行sudo systemctl start mysql启动服务,需要开机自启可追加enable参数。

步骤2:校验SSH端口转发配置

走SSH隧道连接本地数据库时,需确保本地端口转发规则配置正确,标准的本地端口转发命令格式如下:

ssh -L 本地端口:127.0.0.1:3306 SSH用户名@远程服务器地址
  • 确认本地转发端口未被其他程序占用:
    • Windows执行命令:netstat -ano | findstr 3306
    • Linux/macOS执行命令:lsof -i:3306
      若3306端口被占用,可更换本地转发端口(如改为3307),连接数据库时对应填写更换后的端口即可。

步骤3:排查MySQL访问限制配置

  • 打开MySQL配置文件(Windows为my.ini,Linux/macOS为my.cnf),查看bind-address参数,若绑定了特定非本地IP,可修改为127.0.0.1(仅允许本地访问)或0.0.0.0(允许外部地址访问),修改完成后重启MySQL服务生效。
  • 确认本地防火墙未拦截3306端口请求,可临时关闭防火墙测试连接,连通后将MySQL端口加入防火墙放行规则即可。

步骤4:校验数据库连接参数

  • 连接时优先填写地址为127.0.0.1而非localhost,避免系统默认走socket连接不匹配SSH转发的TCP端口。
  • 确认对应用户已开放127.0.0.1的访问权限,MySQL内授权命令参考:
    GRANT ALL PRIVILEGES ON 数据库名.* TO '你的数据库用户名'@'127.0.0.1' IDENTIFIED BY '你的数据库密码';
    FLUSH PRIVILEGES;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:09:01