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.