You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows环境远程连接MySQL Server失败(错误10060)求助

解决MySQL远程连接10060错误的排查步骤

嘿,我之前也碰到过一模一样的问题!Failed to connect... (10060) 这个错误大多是网络层面的拦截或者配置没生效导致的,咱们一步步来排查:

  • 检查服务器防火墙/云安全组
    这是最常见的原因!不管是服务器本地的防火墙(Linux的ufw/iptables、Windows防火墙),还是云服务商的安全组(比如AWS安全组、阿里云安全组),都要确保3306端口对外开放:

    • Linux系统:执行 ufw allow 3306/tcp(如果用ufw)或者 iptables -A INPUT -p tcp --dport 3306 -j ACCEPT,然后重启防火墙(systemctl restart ufwsystemctl restart iptables)。
    • 云平台:登录控制台添加入站规则,允许你的客户端IP(或所有IP,测试用)访问3306端口。
  • 确认MySQL服务监听0.0.0.0
    有时候修改了配置文件但没重启服务,或者找错了配置文件路径:

    1. 在服务器上执行 netstat -tulpn | grep mysql,查看输出里的监听地址。如果是 127.0.0.1:3306,说明配置没生效;如果是 0.0.0.0:3306:::3306(IPv6),就没问题。
    2. 找到正确的MySQL配置文件(常见路径:/etc/mysql/my.cnf/etc/mysql/mysql.conf.d/mysqld.cnf、Windows下的my.ini),确保 bind-address = 0.0.0.0 这一行没有被注释。
    3. 重启MySQL服务:systemctl restart mysql(Linux)或在Windows服务列表中重启MySQL服务。
  • 验证用户权限是否生效
    可能你执行了授权命令但没刷新权限:

    1. 登录MySQL执行:
      GRANT ALL PRIVILEGES ON *.* TO 'XXXX'@'%' IDENTIFIED BY '你的密码';
      FLUSH PRIVILEGES;
      
    2. 检查权限是否正确:
      SELECT user, host FROM mysql.user WHERE user='XXXX';
      
      确保host字段是%(代表任意IP)。
  • 测试客户端到服务器的网络连通性
    先排除本地网络问题:

    • 尝试ping服务器IP:ping x.x.x.x,如果不通,说明基础网络有问题(比如服务器没公网IP、路由错误)。
    • 用telnet测试端口:telnet x.x.x.x 3306,如果提示“无法打开连接”,说明端口被拦截,回到第一步检查防火墙/安全组。
    • 如果本地运营商屏蔽了3306端口,可以尝试修改MySQL的默认端口(比如改成3307),同步更新防火墙规则和客户端连接参数。
  • 检查SELinux限制(仅Linux系统)
    SELinux可能会阻止MySQL对外提供服务:

    • 临时关闭SELinux测试:setenforce 0,如果能正常连接了,就需要配置SELinux规则允许MySQL访问端口:
      semanage port -a -t mysqld_port_t -p tcp 3306
      
      然后重启MySQL服务即可。

如果走完这些步骤还是不行,可以补充服务器的操作系统、是否是云服务器、客户端网络环境等信息,再进一步排查~

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

火山引擎 最新活动