systemadmin.es > DBA > Host ‘ejemplo’ is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’

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

Es posible que al conectar a un MySQL recibamos el siguiente error:

Host 'ejemplo' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 

La solución la tenemos en el mismo error, hacer un FLUSH HOSTS. Vamos a ver que es y que variable controla este comportamiento.

La variable que controla el número máximo de errores de conexión que puede causar un cliente es max_connect_errors. Un host puede conectar normalmente siempre que lo haga con menos errores consecutivos que el valor de dicha variable. Pero si un host llega a este valor queda bloqueado hasta que se desbloquee con FLUSH HOSTS;

Las variables relacionadas con errores en la conexión cliente son:

  • Aborted_clients: Clientes que cierran la conexión incorrectamente (pero se han conectado bien)
  • Aborted_connects: Errores de conexión al MySQL totales

Podemos ver dichas variables mediante SHOW STATUS:

mysql> show status like '%abo%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| Aborted_clients  | 2071  |
| Aborted_connects | 13748 |
+------------------+-------+
2 rows in set (0.00 sec)

Podemos provocar un fallo de conexión mediante telnet:

$ telnet systemadmin.es 3306
Trying 1.2.3.4...
Connected to systemadmin.es.
Escape character is '^]'.
8
5.1.43-logd??9n@5*nmZ!?\=]?Qd"{ekhIConnection closed by foreign host.

Y podemos apreciar como se incrementa la variable Aborted_connects:

mysql> show status like '%abo%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| Aborted_clients  | 2071  |
| Aborted_connects | 13749 |
+------------------+-------+
2 rows in set (0.00 sec)

Estos errores, si no son causados por la librería que usamos para conectar, normalmente ocurren por problemas de red. Deberíamos revisar la configuración para que no existan problemas de rutas, duplex mismatch, sobrecarga en la red…

Como hemos visto antes, en el caso que nos quede bloqueado el host podemos desbloquearlo con FLUSH HOSTS:

mysql> flush hosts;
Query OK, 0 rows affected (0.00 sec)

4 comments to “Host ‘ejemplo’ is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’”

  1. Perfecto simple y practico.

  2. Amigo puedes decirme como lo desbloqueo?? soy un negado, no sé donde hay que restaurar ese codigo que pones o sea donde me meto, etc…. no tengo ni idea :(
    puedes guiarme más o menos como si fuera para dummies?

    Mil gracias!!!

  3. No entiendo nada. ¿Puedes explicarlo para el pueblo llano? No tengo ni idea de informática y he llegado a marcar “inspeccionar elemento” y creo que por ahí va la cosa, pero no sé seguir.

  4. Debes de hacer en el phpmyadmyn en cualquier base de datos le das “flush hosts” y das continuar o ejecutar y listo eso es todo.

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>