在 MySQL 中使用 Mysqladmin 刷新主机解除阻塞
在本教程中,我们将了解阻止主机的原因。我们还将了解如何使用 mysqladmin flush-hosts;
解锁在 MySQL
。
然后,我们将找到不同的方法来刷新 host_cache
以获得成功的连接。之后,我们还将查看刷新 host_cache
表的效果。
阻止主机的原因
以下任何原因都可能导致你的主机 (host_name
) 被阻止。
- 当你的任何主机更改
IP
地址时,主机host_name
被阻止。 - 主机,
host_name
由于许多连接错误而被阻止。这意味着mysqld
收到了许多中断的连接请求。
如何处理被阻止的主机
host_cache
具有客户端的 HOST
、IP
、SUM_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-hosts
和 phpMyAdmin
中的 FLUSH HOSTS 刷新你的 host_cache
来取消阻止主机。