Amazon RDS for MySQLでIPブロックが発生してしまった場合の対処

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

よく訓練されたアップル信者、都元です。先日、アプリケーションがRDS for MySQLに接続を試みた際、下記のようなエラーが発生しました。

Host '10.x.x.x' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

さらっと調べてみると、公式ドキュメントB.5.2.6に詳細がありました。システム変数のmax_connect_errorsの値以上連続で接続失敗すると、ブロックしてしまうようですね。この値はデフォルト100(MySQL 5.6.6以前は10)ですので、100回連続で接続失敗する何かがあったんでしょうな。。。

エラーメッセージによるとmysqladmin flush-hostsすることで解消する、とありますが、RDSではadmin権限を持ったユーザを使うことはできません。

とは言え簡単な話で。別の(ブロックされていない)ホストからMySQLに接続し、下記のSQLを流せばOKです。

FLUSH HOSTS;

ドキュメントはこちら。http://dev.mysql.com/doc/refman/5.6/en/flush.html

と、いう、何ともアッサリしたお話でありました。