is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

2023-11-22 01:32

本文主要是介绍is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts',希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.问题描述

    研发跟我反映他们从某个地址访问mysql数据库报类似如下错误

ERROR 1129 (00000): #HY000Host 'aaaa' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'


二.问题可能原因

   该问题是从某个地址到数据库产生了过多连续的不成功的连接(因为在成功连接之前连接被中断了),详细信息该考如下官方文档中关于max_connect_errors的说明

##如果从某个地址连续多次发起的数据库连接请求在未成功完成连接之前就被中断,在这样的请求到达一定次数后(max_connect_errors设定值)数据库会阻塞这个地址过来的连接(报错信息如is blocked because of many connection errors)。刷新host cache可以解除阻塞。你可以通过执行flush hosts或者mysqladmin flush-host 命令来刷新 host cache。如果在不成功的连接达到max_connect_errors之前,从该地址成功连接到数据库了,那么该error计数被清零。一旦某个地址因为这个原因连接被阻塞,那么flushing the host cache 是唯一的解决方法。

三. 分析并解决问题
1)查看数据库当前max_connect_errors参数设置
mysql> show variables like 'max_connect_errors';
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| max_connect_errors | 500   |
+--------------------+-------+
1 row in set (0.00 sec)

2)查看研发反应的地址 是否达到了max_connect_errors限制
我们可以通过performanc_schema数据库下的host_cache表查看
mysql> use performance_schema;
Database changed
mysql> select * from host_cache\G;
*************************** 1. row ***************************IP: 172.172.xxx.123HOST: xxxx.xx.xxx.comHOST_VALIDATED: YESSUM_CONNECT_ERRORS: <span style="color:#ff0000;">500  >>我们可以看到error计数已经达到设定的500次,所以从这个地址过来的连接请求会被阻塞</span>COUNT_HOST_BLOCKED_ERRORS: 18832COUNT_NAMEINFO_TRANSIENT_ERRORS: 34556COUNT_NAMEINFO_PERMANENT_ERRORS: 0COUNT_FORMAT_ERRORS: 0COUNT_ADDRINFO_TRANSIENT_ERRORS: 0COUNT_ADDRINFO_PERMANENT_ERRORS: 0COUNT_FCRDNS_ERRORS: 0COUNT_HOST_ACL_ERRORS: 0COUNT_NO_AUTH_PLUGIN_ERRORS: 0COUNT_AUTH_PLUGIN_ERRORS: 0COUNT_HANDSHAKE_ERRORS: 34809COUNT_PROXY_USER_ERRORS: 0COUNT_PROXY_USER_ACL_ERRORS: 0COUNT_AUTHENTICATION_ERRORS: 0COUNT_SSL_ERRORS: 0COUNT_MAX_USER_CONNECTIONS_ERRORS: 0
COUNT_MAX_USER_CONNECTIONS_PER_HOUR_ERRORS: 0COUNT_DEFAULT_DATABASE_ERRORS: 0COUNT_INIT_CONNECT_ERRORS: 0COUNT_LOCAL_ERRORS: 0COUNT_UNKNOWN_ERRORS: 0FIRST_SEEN: 2015-11-27 17:48:29LAST_SEEN: 2016-01-27 10:54:09FIRST_ERROR_SEEN: 2015-11-27 17:48:29LAST_ERROR_SEEN: 2016-01-27 10:54:09


3) 解决问题
从官方文档中我们可以知道,该问题通过flush host cache来解决
mysql> flush hosts;
Query OK, 0 rows affected (0.00 sec)mysql> select * from host_cache\G;
Empty set (0.00 sec)ERROR: 
No query specified

##执行flush hosts命令后 host_cache表被清空,问题解决。

这篇关于is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/406517

相关文章

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

【HDU】How Many Answers Are Wrong(带权并查集)

num[i]代表i到根节点的值 这道题一开始竟然以为是线段树= =!后来发现线段树无法进行子区间的维护 #include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn = 222222;int fa[maxn],num[maxn];int find_father(int

kubernetes Pod failed to create fsnotify watcher: too many open files

fs.nr_open: 控制单个进程可以打开的文件描述符的最大数量。单个进程的文件描述符限制可以通过 ulimit 命令来设置。 /proc/sys/fs/nr_open 是一个系统级别的全局参数,表示系统中单个进程能够打开的文件描述符总数的限制。/proc/sys/fs/file-max 系统级别,当前系统可打开的最大数量/etc/security/limits.conf 用户级别,指定用户

解决部分win7系统hosts文件不显示的问题

按住windows键(就是小旗子小窗口键)+R,打开运行;在输入框中输入 cmd并回车;紧接着在dos窗口中输入“CD \WINDOWS\SYSTEM32\DRIVERS\ETC”(不含引号),回车;再次输入“ATTRIB -S -H -R HOSTS”(不含引号),回车。

ssh问题:Connection closed by foreign host. Disconnected from remote host

放通一个远程ip能够ssh服务器,但是报错: Connection closed by foreign host.   Disconnected from remote host。。。   解决办法: firewall防火墙放通ip。 /etc/ssh/sshd_config文件修改,运行root用户密码登,再重启sshd服务。 /etc/hosts.allow和/etc/hos

Oracle - ORA-28547: Connection to server failed,probable Oracle Net admin error (Navicat)

一、异常     用Navicat连接Oracle数据库时抛出的异常 二、方案     使用 Oracle 安装目录 \Oracle\product\11.2.0\dbhome_1\BIN 下的 oci.dll      替换 Navicat 安装目录 \Navicat Premium\instantclient_10_2 下的 oci.dll 文件即可

Oracle - ORA-28009: connection as SYS should be as SYSDBA OR SYSOPER

一、原因     sys 用户是超级管理员,所以在登录的时候需要额外指定其角色 二、方案     1、在 PL/SQL 中,在登录界面,将 连接为 的选项 SYSDBA 选中          2、在 SQLPlus 中,通过 as sysdba 子句指定 -- 方式一[oracle@xl ~]$ sqlplus sys/登录密码 as sysdba-- 方式二[o

在修改文件 /ect/hosts时无法保存 can‘t open file for writing

输入:q!  即可 情境: 在Master节点中执行如下命令打开并修改Master节点中的“/etc/hosts”文件: sudo vim /etc/hosts 可以在hosts文件中增加如下两条IP和主机名映射关系: 192.168.1.121 Master192.168.1.122 Slave1

mysql 事务与connection,锁,慢sql,如何解决,杀死执行的线程

前提说明 navicat中每打开一个窗口就是打开一个connection,关掉窗口就是关掉connection 事务与connection  测试事务不提交的情况 (步骤1)先打开一个窗口,开启一个事务T1插入一条数据,这里不进行提交。 由于在一个事务中,所以select 能立刻查出insert的但还没提交的数据。 查询是否开启 事务超时,回滚策略。 SHOW GLO

关于javaSocket中 Software caused connection abort: recv failed问题

在学习Socket中今天突然遇到了下面这样的问题 原来是网路连接出了问题,因为我测试的是远程连接所以是在学校的局域网下,结果很不稳定,开始还以为怎么了一会连上了一会又出现问题然后把IP地址改为本机的127.0.0.1之后就没有 出现过了.