HiveBrain v1.2.0
Get Started
← Back to all entries
patternsqlMinor

What is the reason of Host 'host_name' is blocked in MySQL?

Submitted by: @import:stackexchange-dba··
0
Viewed 0 times
theblockedwhathost_namereasonhostmysql

Problem

When I use incorrect password to connect to mysql server, and the test count is over the max_connect_errors, and I find the Aborted_connects is also arise as the count I test, but the host is still not blocked.

So does the Aborted_connects over the max_connect_errors then host_name is blocked?

Solution

At this point, you may need to run FLUSH HOSTS and see if this unblocks.

The MySQL Documentation says this about FLUSH HOSTS:



  • Empties the host cache tables. You should flush the host tables if


some of your hosts change IP address or if you get the error message
Host 'host_name' is blocked. When more than max_connect_errors errors
occur successively for a given host while connecting to the MySQL
server, MySQL assumes that something is wrong and blocks the host from
further connection requests. Flushing the host tables enables further
connection attempts from the host. See Section C.5.2.6, “Host
'host_name' is blocked”. You can start mysqld with
--max_connect_errors=999999999 to avoid this error message.


Why should a host get blocked to begin with ??

According to the MySQL Documentation:


If you get the following error, it means that mysqld has received many
connect requests from the host 'host_name' that have been interrupted
in the middle: Host 'host_name' is blocked because of many connection
errors. Unblock with 'mysqladmin flush-hosts' The number of
interrupted connect requests permitted is determined by the value of
the max_connect_errors system variable. After max_connect_errors
failed requests, mysqld assumes that something is wrong (for example,
that someone is trying to break in), and blocks the host from further
connections until you execute a mysqladmin flush-hosts command or
issue a FLUSH HOSTS statement. See Section 5.1.3, “Server System
Variables”.


By default, mysqld blocks a host after 10 connection errors. You can
adjust the value by starting the server like this:

shell> mysqld_safe --max_connect_errors=10000 &



If you get this error message for a given host, you should first
verify that there isn't anything wrong with TCP/IP connections from
that host. If you are having network problems, it does you no good to
increase the value of the max_connect_errors variable.

Code Snippets

shell> mysqld_safe --max_connect_errors=10000 &

Context

StackExchange Database Administrators Q#5242, answer score: 8

Revisions (0)

No revisions yet.