Když k připojení k serveru mysql použiji nesprávné heslo a počet testů přesahuje max_connect_errors
a najdu Aborted_connects
také vzniká jako počet testů, ale hostitel stále není blokován.
Stejně tak i Aborted_connects
přes max_connect_errors
pak je jméno hostitele zablokováno?
V tomto okamžiku bude pravděpodobně nutné spustit FLUSH HOSTS a zjistit, zda se odblokuje.
Dokumentace MySQL říká o FLUSH HOSTS:
- Vyprázdní tabulky vyrovnávací paměti hostitele. Měli byste vyprázdnit tabulky hostitele, pokud někteří hostitelé změní IP adresu nebo pokud se zobrazí chybová zpráva Hostitel 'Host_name' je zablokován. Když se při připojení k serveru MySQL postupně vyskytne více než max_connect_errors chyby pro daného hostitele, MySQL předpokládá, že něco není v pořádku, a blokuje hostitele od dalších požadavků na připojení. Vyprázdnění tabulek Host umožňuje další pokusy o připojení z hostitele. Viz oddíl C.5.2.6, „Hostitel 'Název_hostitele' je blokován '. Chcete-li se vyhnout této chybové zprávě, můžete začít mysqld s --max_connect_errors = 999999999.
Proč by měl být hostitel zablokován, aby začínal ??
Podle dokumentace MySQL :
Pokud se zobrazí následující chyba, znamená to, že server mysqld obdržel od hostitele 'Host_name' mnoho požadavků na připojení, které byly uprostřed přerušeny: Host 'Host_name' je blokován kvůli mnoha chybám připojení. Odblokování pomocí 'mysqladmin flush-hosts' Počet povolených přerušených požadavků na připojení je určen hodnotou systémové proměnné max_connect_errors. Po neúspěšných žádostech max_connect_errors předpokládá mysqld, že něco není v pořádku (například že se někdo pokouší proniknout), a blokuje hostitele před dalším připojením, dokud nevykonáte příkaz flush-hosts mysqladmin nebo nevydáte příkaz FLUSH HOSTS. Viz oddíl 5.1.3 - „Systémové proměnné serveru“.
Ve výchozím nastavení mysqld hostitele blokuje po 10 chybách připojení. Hodnotu můžete upravit spuštěním serveru takto:
Shell> mysqld_safe --max_connect_errors=10000 &
Pokud se zobrazí tato chybová zpráva pro daného hostitele, měli byste nejprve ověřit, že s připojením TCP/IP z tohoto hostitele není nic špatného. Pokud máte problémy se sítí, není dobré zvyšovat hodnotu proměnné max_connect_errors.
Jednou z příčin takového blokování je situace, kdy se náhodná osoba na hostiteli rozhodne provést monitorování MySQL a nastaví telnet na port MySQL na vzdáleném serveru. Při dostatečném počtu vyvolání telnetu je hostitel zablokován v dalším přístupu k tomuto serveru MySQL. Na rozdíl od některých serverů MySQL automaticky neodblokuje přístup po přiměřené době: správce serveru musí MySQL klepat na hlavu.