如何解决"Can't connect to MySQL server on 'hostname' (10061)"问题

wdzsjl 2周前 (01-01) 阅读数 23 #宝塔面板

当遇到 "Can't connect to MySQL server on 'hostname' (10061)" 这类错误时,通常意味着应用程序无法连接到 MySQL 数据库服务器。错误代码 10061 通常表示连接拒绝,可能是因为服务器没有响应或者不允许来自该客户端的连接。以下是解决此类问题的一些步骤:

解决方法:

  1. 检查数据库服务器状态

    • 确认 MySQL 服务是否正在运行。可以通过命令行工具检查服务状态:
      • 在 Windows 上使用 services.msc 或者命令 net start 列出运行的服务,查找 MySQL 服务。
      • 在 Linux 上使用 systemctl status mysql.service 或者 service mysqld status 命令检查 MySQL 服务的状态。
  2. 确认数据库配置信息

    • 检查应用程序中的数据库连接配置文件(如 config.php 或 database.php),确保配置信息正确。
    • 特别注意 hostname(数据库服务器地址)、port(端口号)、username(用户名)和 password(密码)等信息是否正确。
  3. 检查网络连接

    • 如果数据库服务器不在本地主机上,确认网络连接是否正常。
    • 使用 ping 命令测试与数据库服务器的连通性,例如 ping hostname
    • 使用 telnet 或 nc 命令测试能否连接到数据库服务器的 MySQL 端口(通常是 3306),例如 telnet hostname 3306 或 nc -zv hostname 3306
  4. 检查防火墙设置

    • 确认服务器的防火墙没有阻止 MySQL 端口的连接请求。
    • 如果有防火墙,确保 MySQL 服务的端口(通常是 3306)已经被开放。
  5. 检查 MySQL 配置文件

    • 如果是远程连接问题,检查 MySQL 的配置文件(如 my.cnf 或 my.ini),确保 bind-address 设置为 0.0.0.0 或者注释掉该行,以便允许远程连接。
    • 重启 MySQL 服务使配置生效。
  6. 检查 MySQL 用户权限

    • 确认 MySQL 用户具有从客户端 IP 地址连接的权限。
    • 可以使用 GRANT 命令给用户分配相应的权限,例如:
      sql
       
      GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
  7. 检查 MySQL 最大连接数

    • 如果数据库连接数达到上限,也会导致新的连接请求被拒绝。检查 MySQL 的最大连接数配置(max_connections),并根据需要调整。
  8. 检查 MySQL 日志文件

    • 查看 MySQL 的错误日志文件,获取更详细的错误信息,以便进一步诊断问题。
  9. 检查操作系统级别限制

    • 确认操作系统的网络配置允许出站和入站的 TCP 连接。
    • 检查系统级的网络限制,例如 SELinux 或 AppArmor 配置。

通过以上步骤,您可以逐步排查并解决 "Can't connect to MySQL server on 'hostname' (10061)" 的问题。如果问题依然存在,建议查看数据库和操作系统的日志文件,或者联系网络管理员或数据库管理员寻求进一步的帮助。

wx.jpg ywfw.jpg
热门