首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >主机'host_name‘在MySQL中被阻塞的原因是什么?

主机'host_name‘在MySQL中被阻塞的原因是什么?
EN

Database Administration用户
提问于 2011-08-31 12:11:31
回答 3查看 51.6K关注 0票数 13

当我使用错误的密码连接到mysql服务器时,测试计数在max_connect_errors上,并且我发现Aborted_connects也会随着计数而出现,但是主机仍然没有被阻塞。

那么,Aborted_connectsmax_connect_errors上是否会被阻塞,那么host_name会被阻塞吗?

EN

回答 3

Database Administration用户

发布于 2011-08-31 12:32:30

此时,您可能需要运行冲洗主机并查看是否解除阻塞。

MySQL文档中提到了关于刷新主机的内容:

  • 清空主机缓存表。如果某些主机更改了IP地址,或者如果收到错误消息,主机'host_name‘被阻塞,则应该刷新主机表。当一个给定主机在连接到max_connect_errors服务器时连续发生多个MySQL错误时,MySQL假设有问题,并阻止主机进行进一步的连接请求。通过刷新主机表,可以进一步尝试从主机进行连接。参见C.5.2.6节,“阻止主机'host_name‘”。您可以使用--max_connect_errors=999999999开始mysqld,以避免出现此错误消息。

为什么主机一开始就被阻塞了??

根据MySQL文档的说法:

如果您得到以下错误,这意味着mysqld收到了来自主机'host_name‘的许多连接请求,这些请求在中间被中断:主机'host_name’由于许多连接错误而被阻塞。用'mysqladmin刷新-主机‘解除阻塞,允许的中断连接请求的数量由max_connect_errors系统变量的值决定。在max_connect_errors失败请求后,mysqld假设有问题(例如,有人试图闯入),并阻止主机与进一步的连接,直到执行mysqladmin刷新主机命令或发出刷新主机语句。见5.1.3节,“服务器系统变量”。默认情况下,mysqld在10个连接错误后阻塞主机。您可以通过如下方式启动服务器来调整值:

代码语言:javascript
运行
复制
shell> mysqld_safe --max_connect_errors=10000 &

如果为给定主机获得此错误消息,应首先验证来自该主机的TCP/IP连接没有任何问题。如果您有网络问题,增加max_connect_errors变量的值对您没有好处。

票数 8
EN

Database Administration用户

发布于 2013-01-15 20:19:57

造成这种阻塞的原因之一是主机上的某个随机人员决定对MySQL进行一些监视,并在远程服务器上为MySQL端口设置一个telnet。如果有足够数量的telnet调用,主机将被阻止对该MySQL服务器的进一步访问。与某些服务器不同的是,MySQL不会在合理的时间之后自动解除对MySQL的访问:服务器管理员必须敲MySQL的头。

票数 2
EN

Database Administration用户

发布于 2021-08-18 05:52:54

为了诊断这个问题,您可以尝试运行

代码语言:javascript
运行
复制
select * from performance_schema.host_cache

表格应从5.6开始。更多信息,这里。例如,COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORSCOUNT_SSL_ERRORS中错误数量的增加可能会给您提示。

5.1.11.2 DNS查找和主机缓存MySQL服务器维护内存中的主机缓存,其中包含有关客户端的信息: IP地址、主机名和错误信息。Performance host_cache表公开主机缓存的内容,以便可以使用SELECT语句对其进行检查。这可能有助于您诊断导致连接问题的原因。_缓存表见22.12.10.1节,“主持人”“。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/5242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档