MySQL接続エラー [Error: ER_HOST_IS_BLOCKED: Host ‘〜’ is blocked because of many connection errors]

こんばんは、daihaseです。

今日はMySQLに関する設定について。
ある日モニタリングサービス経由で「おたくのDBが止まったよ」的なエラー報告が。

ログを見てみると

[Error: ER_HOST_IS_BLOCKED: Host ‘xxx.xxx.xxx.xxx’ is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’]

MySQLはシステム変数でmax_connect_errorsというものがあるのですが、設定されている数値を超える回数の接続の失敗があった場合、それを不正と捉えロックがかかります。

※これがMySQL5.7だと初期設定で100になっています。

これ自体厳密にはブルートフォースアタックや不正なクラックを防ぐセキュリティ効果があるかというとそうでもなく、またサーバースペックが低いとハンドシェイクエラーが発生しそれもカウントされるため、初期で設定されているしきい値では色々心もとないです。

エラーログにもあるようにmysqladmin flush-hostsしてやれば問題なく使えるのですが、せっかくなのでしきい値も変更してみましょう。

まずはMySQLにログインし、以下を実行。

そうしたら以下を叩いてしきい値を変えます。

今日はここまで。
それでは良い開発ライフを〜

スポンサーリンク
336 x 280 レクタングル(大)
336 x 280 レクタングル(大)