[mysql] max_connetion_errorsに達してしまった。これは連続回数らしい。
Host 'host_name' is blocked because of many connection errors. Unblock with 'mysqladmin flush-hosts'
とか出やがったので、これを調べてました。
問題は一つのホストから、多くのコネクションエラーが発生したから、ということで、MySQL側でそのホストを不正とみなしてブロックするとのこと。
で、その多くのコネクションとは、設定値"max_connect_errors"とのことで、そのデフォルト値10回に達してしまったという状態を指すらしい。
はて、問題はこの回数だが、エラー回数が蓄積された場合なのか?それとも、連続した回数なのか?そのあたりの記述がマニュアルで見つからない。というわけで仕方なく、調査。
エラーメッセージの定義ファイルからスタートして、最終的にはsql_connect.ccを見ていたらこんな感じの記述を発見した。
677 if (connect_errors > max_connect_errors) ← 回数が超過していたら 678 { ↑エラー出力して終了 679 my_error(ER_HOST_IS_BLOCKED, MYF(0), thd->main_security_ctx.host_or_ip); 680 return 1; 681 } ↓正常時にconnect_errors > 0なら回数リセット 765 if (connect_errors) 766 reset_host_errors(&thd->remote.sin_addr);
(あまりにも抜粋してるけど、結局はここにたどりついた)他にもmysqld.ccなどをいったりきたりして。
実験結果としては連続であったが、かなり確度の高い情報を得ることができて良かった。