sql >> Databáze >  >> RDS >> Mysql

Jak spustit mysqladmin flush-hosts na Amazon RDS

V některých případech při spuštění MySQL na Amazon RDS (nebo jinde) může být nutné FLUSH všechny host záznamy z MySQL. Obvykle je to vyžadováno, když se zobrazí chyba "Host 'host_name' is blocked" dojde, což zabrání dalším připojením z tohoto konkrétního host_name .

host_name blocked chyba nastane, když počet max_connect_errors zadaná v konfiguraci MySQL je překročena, což znamená, že se konkrétní hostitel příliš mnohokrát neúspěšně pokusil připojit. Toto je bezpečnostní opatření zavedené MySQL, aby se zabránilo neoprávněným útokům od hostitelů/uživatelů, kteří nemají správná pověření, ale někdy k tomu může dojít omylem a může být nutné jej vyřešit vyprázdněním hostitelů.

Co dělají hostitelé splachování?

S uživatelem MySQL se správnými oprávněními provede FLUSH může MySQL vymazat flush tabulky, zámky a interní systémy mezipaměti v závislosti na předávaných v options . V případě FLUSH HOSTS; , MySQL vyprázdní mezipaměť hostitele, což v podstatě znamená, že záznam MySQL o tom, kteří hostitelé jsou aktuálně nebo nedávno připojeni, je resetován, což umožňuje další připojení z uvedených hostitelů.

Přímé provádění FLUSH HOST

I když se může stát, že vám bude zcela znemožněno připojení k MySQL, v některých případech je možné, že systém „uloží“ připojovací slot, který je dostupný pouze pro primární nebo root účet.

Pro Amazon RDS , toto uživatelské jméno se obvykle nachází ve vaší konzole pro správu jako výchozí nebo „Master“. Pokuste se připojit k vašemu serveru MySQL s tímto primárním uživatelským jménem.

Pokud se můžete připojit, je proplachování vašich hostitelů stejně jednoduché jako spuštění FLUSH HOSTS; Příkaz MySQL:

FLUSH HOSTS;

Nyní byste měli vymazat host_name blocked chyba a budete se moci připojit ke svému standardnímu účtu MySQL.

Vzdálené proplachování hostitelů pomocí MySQLAdmin

V případě, že se nemůžete připojit k MySQL jako hlavnímu účtu a stále dostáváte blocked chyby, další možností je připojit se k serveru vzdáleně a provést flush pomocí příkazu mysqladmin nástroj.

Chcete-li to provést, musíte být připojeni k jinému Instance EC2 nebo server, který má přístup k serveru RDS, který způsobil chybu.

Po připojení spusťte následující příkaz se správnými možnostmi nahrazenými mezi <> :

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

Pokud bude úspěšný, flush-hosts příkaz bude proveden podle očekávání a nyní se budete moci připojit k MySQL jako obvykle.

Restartování instance RDS

Poslední možností, pokud vše ostatní selže, je jednoduše se přihlásit k ovládacímu panelu správy RDS a ručně restartovat instanci RDS, která způsobuje chybu. To účinně resetuje hosts cache pro vás, i když to nemusí být ideální v podmínkách výroby.


  1. Těžební plány :Nejen pro mezipaměť plánů

  2. Více omezení v tabulce:Jak získat všechna porušení?

  3. ORACLE SQL:Získejte všechna celá čísla mezi dvěma čísly

  4. Vypočítejte věk v letech v PostgreSQL