mysql 链接超过ip限制时的报错

报错信息:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1129] Host '127.0.0.1' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'' in /home/htdocs/kelala/sub/Simplelzf/Db/DBObject.php on line 56
PDOException: SQLSTATE[HY000] [1129] Host '127.0.0.1' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' in /home/htdocs/kelala/sub/Simplelzf/Db/DBObject.php on line 56

错误原因:同一个ip在短时间内产生太多(超过mysql数据库max_connection_errors 的最大值)中断的数据库连接而导致的阻塞。
解决方法如下:
1,提高max_connection_errors数量,先查看该属性设置为多大,命令:show
global variables like '%max_connect_errors%';
2,当客户端连接服务端超时(超过contect_timeout),服务端就会给这个客户端记录一次error,当出错次数达到max_connect_errors的时候,客户端就会被锁定,mysql默认这个值为10,可以根据需求设置的大一点,比如1000,但是设置大了之后,被攻击时的安全性能会降低),使用命令:set global max_connect_errors = 1000;
设置以后马上生效,也可以查一下是否修改成功,使用命令:show global variables like '%max_content_errors%';
3,也可以使用缓存的方法,这样就会把计数清理掉,命令1,到安装bin的木兰路下,使用mysqladmin -u root -p flsh-hosts命里密码输入后,完成缓存。
4,也可以打开数据库,直接执行sql语句: flush hosts;

猜你喜欢

转载自www.cnblogs.com/ayanboke/p/9071692.html