MySQL案例-host is blocked, flush hosts

-------------------------------------------------------------------------------------------------正文---------------------------------------------------------------------------------------------------------------

背景:
MySQL-5.5.41, 开发用的环境连接MySQL客户端时报错;

场景:
业务方反馈在连接MySQL的时候报错了, 且应用也在输出了一样的错误信息:

点击(此处)折叠或打开

  1. ERROR 1129 (HY000): Host 'x.x.x.x' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

且开发的同事尝试修改了max_connect_errors的参数;

调整到1000以后, 再进行flush hosts, 虽然能够解决问题, 但是一分钟之后还是会报同样的错误;

分析:
引起这个问题的原因很直白, 在报错信息里面都写明了, "because of many connection errors";

然后看了一下aborted connections, 确实如描述一般, too many......

中间还查看了一次host的参数, 因为在5.7里面, 设置host_cache_size为0就可以避免这个问题了,

然而5.5压根就没有这个参数......_(:з」∠)_

考虑一下发生这个问题的根本原因:

host_cache中, 记录了的blocked错误, 如果这种错误的数量太多, 在上一次成功连接之后, 这种错误的数量超过了max_connect_errors的值,
那么MySQL就会抛出这个错误, 并提示需要flush hosts;

5.7中设置size为0(动态参数), 变相的使得mysql认为blocked的数量一直是0, 所以就不会再报这种错了,

从根本原因来看, 关掉host cache也是一个解决的办法;

那么如何关掉host cache?

MySQL5.5和5.7在show variables中都没有一个明确的参数能关闭host cache,

翻了一下文档, 发现只能在启动的时候加上skip-host-cache才能关闭;

处理方式:
最终是协商了重启的时间, 在开发机的MySQL配置文件加上了skip-host-cache来彻底关闭这个cache, 然后随开发们乱搞去吧......╮(╯_╰)╭

时间: 2024-10-02 05:48:34

MySQL案例-host is blocked, flush hosts的相关文章

解决MySql Error:Host is blocked because of many connection errors问题

# mysqladmin flush-hosts 现在我们进入mysql编辑my.cnf # vi /etc/my.cnf 然后在里面增加 max_connect_errors=10000 # service mysqld restart 之后重启mysql数据库服务器,如果你没有服务器权限我们可以使用命令模式来设置 # mysql -uroot -p # mysql> SET GLOBAL max_connect_errors=10000; 其实这个方法不是治本的方法我们可以尝试设置mysql

mysql案例:mysql5.6.14配置my.cnf多实例

mysql案例:mysql5.6.14配置my.cnf多实例,mysql_install_db初始化不读取my.cnf配置文件 1.1.1. mysql5.6.14多实例my.cnf时,初始化不读取my.cnf配置文件 [环境描述] 在多实例配置的/etc/my.cnf环境中,执行mysql_install_db后,启动Mysql报错. [操作步骤] /etc/my.cnf配置文件: [mysqld3307] innodb_data_file_path =ibdata1:1G:autoexten

mysql案例:Java程序访问Mysql报错

mysql案例:Java程序访问Mysql报错'OPTION SQL_SELECT_LIMIT=XXX' [环境描述] mysql版本: 5.6.14-56-log Percona Server (GPL) 程序: 使用JDBC驱动mysql-connector-java访问mysql数据库 [报错信息] 程序访问mysql执行SQL语句的时候报错: You have an error in your SQL syntax; check the manual that corresponds t

MySQL案例-不同寻常的[ERROR]Can't create a new thread (errno 11)

-------------------------------------------------------------------------------------------------正文--------------------------------------------------------------------------------------------------------------- 场景:MySQL-5.7.17, 程序端报异常 点击(此处)折叠或打开 Ope

MySQL案例分析--QueryCache

QueryCache联动内容:http://blog.itpub.net/29510932/viewspace-1694922/ -------------------------------------------------------------------------------------------------正文--------------------------------------------------------------------------------------

MySQL案例-GTID同步失败:master has purged binary logs

GTID工具联动:http://blog.itpub.net/29510932/viewspace-1736132/ -------------------------------------------------------------------------------------------------正文--------------------------------------------------------------------------------------------

MySQL案例-半同步引起Master实例Crash

-------------------------------------------------------------------------------------------------正文--------------------------------------------------------------------------------------------------------------- 场景 : Crash发生时的数据库版本: MySQL-5.7.12, 官方标注

MySQL案例-初步恢复: alter引起的从库无限Crash

-------------------------------------------------------------------------------------------------正文--------------------------------------------------------------------------------------------------------------- 场景 : Crash发生时的数据库版本: MySQL-5.7.17, 从库在同

MySQL案例-mysqld got signal 11(补充)

-------------------------------------------------------------------------------------------------正文--------------------------------------------------------------------------------------------------------------- 背景:MySQL-5.7.12, debian 8核16G虚拟机, 业务方反馈