it-swarm-eu.dev

Jaký je důvod, proč je hostitel 'Host_name' zablokován v MySQL?

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?

12
user3157

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.

8
RolandoMySQLDBA

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.

1
Richard