unblock with 'mysqladmin flush-hosts'
思路
查看连接数
Max_used_connections / max_connections * 100% ≈ 85%
一般的服务 最大设置1000 以下就差不多了
查看最大错误连接设置
是否是锁表
是否并发访问
最后 去查看相关资料 也是这样操作的,详细请查看
If you get a MySQL error like:
-
Host '' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
This most likely means your PHP / Java whatever programming language application connecting to MySQL is failing to authenticate with the application created (existing) or that the application is trying too many connections to MySQL in a rate where MySQL server can't serve all the requests.
Some common errors for Too many Connection errors are:
Networking Problem
Server itself could be down
Authentication Problems
Maximum Connection Errors allowed.
-
The value of the max_connection_errors system variable determines how many successive interrupted connection requests are permitted to myqsl server.
Well anyways if you get the:
-
Host '' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
You can consider this a sure sign application connections to MySQLis logging a lot of error connections, for some reason.
This error could also appear on very busy websites where high amount of separete connections are used – I've seen the error occur on PHP websites whether mysql_pconnect(); is selected in favour of the prooved working mysql_connect();The first thing to do before changing / increasing default set of max connection errors is to check how many max connection errors are set within MySQL?
For that connect with MySQL CLI and issue:
mysql> SHOW VARIABLES LIKE '%error%';
-
+——————–+————————————————————-+
| Variable_name | Value |
+——————–+————————————————————-+
| error_count | 0 |
| log_error | /var/log/mysql//mysqld.log |
| max_connect_errors | 10000 |
| max_error_count | 64 |
| slave_skip_errors | OFF |
+——————–+————————————————————-+
A very useful mysql cli command in debugging max connection errors reached problem ismysql> SHOW PROCESSLIST;
To solve the error, try to tune in /etc/my.cnf, /etc/mysql/my.cnf or wherever my.cnf is located:
[mysqld]
max_connect_errors variableand
wait_timeout var. Some reasonable variable size would be:
max_connect_errors = 100000
wait_timeout = 60If such (anyways) high values is still not high enough you can raise mysql config connection timeout
to
max_connect_errors = 100000000
Also if you want to try raise max_connect_errors var without making it permanenty (i.e. remember var setting after MySQL service restart), set it from MySQL cli with:
SET GLOBAL max_connect_errors
If you want to keep the set default max_connection_errors and fix it temporary, you can try to follow the error-
Host '' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
suggestion and issue in root console:
mysqladmin flush-hosts
Same could also be done from MySQL Cli with cmd:
FLUSH HOSTS;
- See more at: http://pc-freak.net/blog/host-blocked-connection-errors-unblock-mysqladmin-flushhosts/#sthash.5Gx5ukgE.dpuf
原文地址 http://pc-freak.net/blog/host-blocked-connection-errors-unblock-mysqladmin-flushhosts/