Qual è il motivo per cui Host 'nome_host' è bloccato in MySQL?


12

Quando utilizzo una password errata per connettermi al server mysql, il conteggio del test è finito max_connect_errorse trovo che Aborted_connectsanche il conteggio provochi, ma l'host non è ancora bloccato.

Quindi il Aborted_connectsover max_connect_errorsallora host_name è bloccato?

Risposte:


8

A questo punto, potrebbe essere necessario eseguire FLUSH HOSTS e vedere se questo si sblocca.

La documentazione di MySQL dice questo su FLUSH HOSTS:

  • Svuota le tabelle della cache dell'host. È necessario svuotare le tabelle degli host se alcuni host cambiano l'indirizzo IP o se viene visualizzato il messaggio di errore L'host 'nome_host' è bloccato. Quando si verificano più errori max_connect_errors in successione per un determinato host durante la connessione al server MySQL, MySQL presuppone che qualcosa non vada e blocca l'host da ulteriori richieste di connessione. Lo svuotamento delle tabelle host consente ulteriori tentativi di connessione dall'host. Vedere la sezione C.5.2.6, "L'host 'nome_host' è bloccato". È possibile avviare mysqld con --max_connect_errors = 999999999 per evitare questo messaggio di errore.

Perché un host dovrebbe essere bloccato per cominciare ??

Secondo la documentazione MySQL :

Se viene visualizzato il seguente errore, significa che mysqld ha ricevuto molte richieste di connessione dall'host 'nome_host' che sono state interrotte nel mezzo: L'host 'nome_host' è bloccato a causa di molti errori di connessione. Sblocca con 'mysqladmin flush-hosts' Il numero di richieste di connessione interrotte consentite è determinato dal valore della variabile di sistema max_connect_errors. Dopo che max_connect_errors ha fallito le richieste, mysqld presume che qualcosa non vada (per esempio, qualcuno stia cercando di entrare) e blocca l'host da ulteriori connessioni fino a quando non esegui un comando mysqladmin flush-hosts o emetti un'istruzione FLUSH HOSTS. Vedere la Sezione 5.1.3, "Variabili di sistema del server".

Per impostazione predefinita, mysqld blocca un host dopo 10 errori di connessione. È possibile regolare il valore avviando il server in questo modo:

shell> mysqld_safe --max_connect_errors=10000 &

Se ricevi questo messaggio di errore per un determinato host, dovresti prima verificare che non ci sia nulla di sbagliato nelle connessioni TCP / IP di quell'host. Se si verificano problemi di rete, non è utile aumentare il valore della variabile max_connect_errors.


Non sembra che questi errori vadano nel normale registro degli errori di MySQL. Esiste un modo per visualizzare un registro degli errori di connessione che bloccano l'host? Ho anche notato il "seguito" sopra. Quindi, hai solo bisogno di una connessione di successo in mezzo? O dovrei solo fare una nuova domanda?
Marc L.

1

Una delle cause di tale blocco è il caso in cui una persona a caso sull'host decide di eseguire un monitoraggio di MySQL e imposta un telnet sulla porta MySQL sul server remoto. Con un numero sufficiente di invocazioni telnet, l'host viene quindi bloccato da un ulteriore accesso a quel server MySQL. A differenza di alcuni server, MySQL non sblocca automaticamente l'accesso dopo un ragionevole lasso di tempo: l'amministratore del server deve battere MySQL in testa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.