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

远程MySQL连接失败求助:Workbench及代码连接均被拒绝

解决远程MySQL连接被拒绝(Connection refused)的问题

我帮你梳理下可能漏掉的几个关键配置,你可以逐一排查:

  • 检查MySQL的IP绑定设置
    默认情况下,MySQL可能只绑定了127.0.0.1(仅允许本地访问)。你需要修改MySQL的配置文件(Linux通常是/etc/mysql/my.cnf或/etc/mysql/mysql.conf.d/mysqld.cnf,Windows是my.ini),找到bind-address这一行,把它改成0.0.0.0(允许所有IP访问)或者远程机器的具体公网/内网IP。修改后重启MySQL服务:sudo systemctl restart mysql(或service mysql restart)。
    你可以用命令确认监听状态:netstat -tulpn | grep mysql,如果输出里的地址是127.0.0.1:3306,说明还是只允许本地连接,需要重新调整配置。

  • 检查远程机器的防火墙与安全组
    就算MySQL服务正常,防火墙或云平台安全组也可能拦截了3306端口的请求:

    • 如果是Linux防火墙(比如ufw),执行sudo ufw allow 3306开放端口;如果是firewalld,执行sudo firewall-cmd --add-port=3306/tcp --permanent,然后sudo firewall-cmd --reload生效。
    • 如果你用的是云服务器(阿里云、AWS等),一定要去云平台的安全组控制台,添加一条允许你的本地IP访问3306端口的规则,只开放给你的IP比开放所有IP更安全。
  • 检查MySQL用户的远程访问权限
    你用来连接的MySQL用户可能只有本地访问权限(比如your_user@localhost),需要给用户授权远程访问:
    登录远程MySQL后执行:

    CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password'; -- %允许所有IP,也可以指定你的本地IP
    GRANT ALL PRIVILEGES ON your_target_db.* TO 'your_user'@'%';
    FLUSH PRIVILEGES;
    

    注意把your_user、your_password、your_target_db换成你实际的信息。

  • 确认连接参数的正确性
    检查你代码里的连接参数:

    • 主机地址是不是远程机器的正确公网/内网IP(绝对不能写localhost,那是连本地MySQL);
    • 端口是不是3306(如果你修改过MySQL默认端口,要对应改成新端口);
    • 用户名和密码是不是刚才授权的那个用户的信息。
      你可以先尝试用本地的MySQL Workbench连接测试,如果Workbench也连不上,那问题肯定在服务器端配置;如果Workbench能连,那大概率是代码里的参数写错了。
  • 检查3306端口是否被占用
    虽然MySQL服务显示运行,但有可能3306端口被其他进程占用了。执行lsof -i :3306或netstat -tulpn | grep 3306,确认输出里的进程是mysqld,如果是其他进程,需要停止该进程或者修改MySQL的监听端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:50:31