在 MySQL 中使用 Mysqladmin 刷新主机解除阻塞

Mehvish Ashiq 2023年1月30日
  1. 阻止主机的原因
  2. 如何处理被阻止的主机
  3. 刷新 host_cache 表的效果
  4. 刷新主机的不同方法
  5. 结论
在 MySQL 中使用 Mysqladmin 刷新主机解除阻塞

在本教程中,我们将了解阻止主机的原因。我们还将了解如何使用 mysqladmin flush-hosts; 解锁在 MySQL

然后,我们将找到不同的方法来刷新 host_cache 以获得成功的连接。之后,我们还将查看刷新 host_cache 表的效果。

阻止主机的原因

以下任何原因都可能导致你的主机 (host_name) 被阻止。

  • 当你的任何主机更改 IP 地址时,主机 host_name 被阻止。
  • 主机,host_name 由于许多连接错误而被阻止。这意味着 mysqld 收到了许多中断的连接请求。

如何处理被阻止的主机

host_cache 具有客户端的 HOSTIPSUM_CONNECT_ERRORS 和其他必要的详细信息。

主机缓存用于跟踪连接错误。MySQL 服务器使用 host_cache 跟踪客户端连接过程中的错误。

假设你在建立连接时遇到以下错误。那么这意味着,mysqld 收到了许多中途中断的连接请求。

现在,它不会让你再次连接。

Host 'host_name' is blocked because of many connection errors.
Unblock with mysqladmin flush-hosts

系统变量 max_connect_errors 确定中断连接请求的数量。

如果中断连接请求的数量超过允许的数量,你的主机将被阻止。并且在刷新 hosts_cache 表之前无法发送进一步的连接请求。

这是因为 mysqld 假设有人试图闯入或出现问题。在这种情况下,你无法发送连接请求,直到你清除 host-cache 表。

你可以使用 mysqladmin flush-hosts; 从命令提示符/终端。你也可以使用 FLUSH HOSTS; phpMyAdmin 中的声明。

刷新 host_cache 表的效果

如果你通过刷新 host_cache 解除对主机的阻塞,你可能会产生一种或多种影响。下面列出了这些影响。

  • 内存中的 host_cache 将被清除。
  • 取消阻止之前被阻止的主机。
  • host_cache 中的所有行都将被删除。

刷新主机的不同方法

这些是你可以用来刷新主机的不同方法。你必须为此提供所需的权限

  • 通过提供 SUPER 权限,你可以更改 host_cache_size 系统变量的值。
  • 通过赋予 DROP 权限,截断 host_cache 表。你可以使用 TRUNCATE TABLE 语句来完成。
  • 如果你使用 phpMyAdmin,请使用 FLUSH HOSTS;。它需要 RELOAD 权限。
  • 通过分配 RELOAD 权限,你可以使用 MySQL 中的 mysqladmin 刷新主机解除阻塞。执行 mysqladmin flush-hosts; 命令提示符/终端的语句。
  • 你也可以使用 mysqladmin -u username -p password flush-hosts; 清除 host_cache 表。用你的用户名密码替换用户名密码

结论

考虑到上述部分,我们得出的结论是,如果你的主机更改了 IP,则该主机被阻止。或者,与允许的失败连接请求数相比,你有更多的连接错误。

你可以通过使用 MySQL 中的 mysqladmin flush-hostsphpMyAdmin 中的 FLUSH HOSTS 刷新你的 host_cache 来取消阻止主机。

作者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook