mysql_优化: ‘mysqladmin flush-hosts’问题的排查

问题1:mysqladmin flush-hosts

Host is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’;

同一个ip在短时间内产生太多(超过mysql数据库max_connection_errors的最大值)中断的数据库连接而导致的阻塞;

问题排查:
被封的为公司内部ip,说明公司内有人请求数据库错误并且数量超出了数据库设置,造成该ip被封。

解决办法1

使用如下命令

mysql> flush hosts;

但是一段时间后,又会出现该问题。

问题2: Packets out of order

查看日志会有Packets out of order 的错误情况。

问题排查:
可能公司同一段ip下,有人传输较大的文件,文件的大小大于数据库的设置,并且超过一定次数造成ip被封。

解决方法2

  1. show variables like ‘max_allowed_packet’,默认是1048576 意味着是1M
  2. my.cnf 中将max_allowed_packet= 1M 改大一些,最大可以改成128M; 一般差不多20M左右就好;
  3. set global max_allowed_packet = 20 * 1024 * 1024 ;然后重启MySQL就好了;

但是一段时间后,又出现该问题。

问题排查:
由于看不到具体报错信息,无法排查到人和项目。
最后前后端同事分别断网,并查看报错日志是否还在刷新,固定到个人,然后固定到项目。

解决方法3

查到一个同事使用mac版navicat连接服务器时由于密码错误,造成其不断的请求服务器mysql,错误数量超出限制导致问题1
重新登录并采用方法1,解决问题。

你可能感兴趣的:(业务)