Mysql
 sql >> Database >  >> RDS >> Mysql

Come eseguire mysqladmin flush-hosts su Amazon RDS

In alcuni casi durante l'esecuzione di MySQL su Amazon RDS (o altrove), potrebbe essere necessario FLUSH tutto host record da MySQL. In genere, questo è richiesto quando l'errore "Host 'host_name' is blocked" si verifica, che impedirà ulteriori connessioni da quel particolare host_name .

Il host_name blocked l'errore si verifica quando il numero di max_connect_errors specificato nella configurazione di MySQL è superato, il che significa che un particolare host ha tentato di connettersi troppe volte senza successo. Questa è una misura di sicurezza adottata da MySQL per prevenire attacchi ingiustificati da parte di host/utenti che non dispongono di credenziali adeguate, ma a volte può verificarsi per errore e potrebbe dover essere risolta svuotando gli host.

Cosa fa il lavaggio degli host?

Con un utente MySQL con privilegi appropriati esegue un FLUSH istruzione, MySQL può cancellare tabelle di svuotamento, blocchi e sistemi di cache interni a seconda delle options passate . Nel caso di FLUSH HOSTS; , MySQL svuoterà la cache dell'host, il che significa che il record di MySQL di quali host sono attualmente o si sono recentemente connessi viene ripristinato, consentendo ulteriori connessioni da detti host.

Esecuzione diretta di FLUSH HOST

Anche se può essere che ti venga completamente impedito di connetterti a MySQL, in alcuni casi è possibile che il sistema "salvi" uno slot di connessione che è disponibile solo per il primario o root conto.

Per Amazon RDS , questo nome utente si trova in genere nella console di gestione come predefinito o "Master". Prova a connetterti al tuo server MySQL con questo nome utente primario.

Se sei in grado di connetterti, svuotare i tuoi host è semplice come eseguire FLUSH HOSTS; Istruzione MySQL:

FLUSH HOSTS;

Ora dovresti aver cancellato il tuo host_name blocked errore ed essere in grado di connetterti con il tuo account MySQL standard.

Svuotare gli host in remoto utilizzando MySQLAdmin

Nel caso in cui tu non riesca a connetterti a MySQL come account principale e continui a ricevere blocked errori, l'opzione successiva è connettersi al server in remoto ed eseguire il flush comando utilizzando mysqladmin strumento.

Per fare ciò, dovrai essere connesso a un altro Istanza o server EC2 che ha accesso al server RDS che produce l'errore.

Una volta connesso, eseguire il comando seguente con le opzioni appropriate sostituite tra <> :

$ mysqladmin -h <RDS_ENDPOINT_URL> -P <PORT> -u <USER> -p flush-hosts

In caso di successo, flush-hosts il comando verrà eseguito come previsto e ora sarai in grado di connetterti a MySQL normalmente.

Riavvio dell'istanza RDS

L'ultima opzione, se tutto il resto fallisce, è semplicemente accedere al pannello di controllo di gestione di RDS e riavviare manualmente l'istanza RDS che sta dando l'errore. Questo ripristinerà efficacemente la hosts cache per te, anche se potrebbe non essere l'ideale in circostanze di produzione.