MySQL の Mysqladmin フラッシュホストでブロックを解除する
このチュートリアルでは、ホストをブロックする理由について学習します。また、MySQL で mysqladmin flush-hosts; を使用してブロックを解除する方法についても説明します。
次に、接続を成功させるために host_cache をフラッシュするさまざまな方法を見つけます。その後、host_cache テーブルをフラッシュした場合の影響についても見ていきます。
ホストをブロックする理由
次のいずれかの理由により、ホスト(host_name)がブロックされる可能性があります。
- ホストのいずれかが
IPアドレスを変更すると、ホストhost_nameがブロックされます。 - ホスト、
host_nameは多くの接続エラーのためにブロックされています。これは、mysqldが多くの中断された接続要求を受け取ったことを意味します。
ブロックされたホストに対処する方法
host_cache には、クライアントの HOST、IP、SUM_CONNECT_ERRORS、およびその他の必要な詳細が含まれています。
ホストキャッシュは、接続エラーを追跡するために使用されます。MySQL サーバーは host_cache を使用して、クライアント接続プロセス中のエラーを追跡します。
接続中に次のエラーが発生したとします。つまり、mysqld は途中で中断された多くの接続要求を受信したということです。
さて、それはあなたが再び接続することを可能にしません。
Host 'host_name' is blocked because of many connection errors.
Unblock with mysqladmin flush-hosts
システム変数 max_connect_errors は、中断された接続要求の数を決定します。
中断された接続要求の数が許可された数を超えると、ホストはブロックされます。また、hosts_cache テーブルをフラッシュするまで、それ以上の接続要求を送信することはできません。
これは、mysqld が誰かが侵入しようとしている、または何かがうまくいかないことを想定しているためです。この状況では、host-cache テーブルをクリアするまで接続要求を送信できません。
mysqladmin flush-hosts; を使用できますコマンドプロンプト/ターミナルから。FLUSH HOSTS; を使用することもできます phpMyAdmin のステートメント。
host_cache テーブルのフラッシュの影響
host_cache のフラッシュを介してホストのブロックを解除すると、1つ以上の影響が生じる可能性があります。それらの効果を以下に示します。
- メモリ内の
host_cacheはクリアされます。 - 以前にブロックされたホストのブロックを解除します。
host_cacheのすべての行が削除されます。
ホストをフラッシュするさまざまな方法
これらは、ホストをフラッシュするために使用できるさまざまな方法です。これに必要な権限を提供する必要があります。
SUPER権限を提供することにより、host_cache_sizeシステム変数の値を変更できます。DROP権限を付与することにより、host_cacheテーブルを切り捨てます。これは、TRUNCATE TABLEステートメントを使用して実行できます。FLUSH HOSTS;を使用しますphpMyAdminを使用している場合。RELOAD権限が必要です。RELOAD権限を割り当てることにより、MySQLのmysqladminflush-hosts でブロックを解除できます。mysqladmin flush-hosts;を実行しますコマンドプロンプト/ターミナルからのステートメント。mysqladmin -u username -p password flush-hosts;を使用することもできますhost_cacheテーブルをクリアします。usernameとpasswordをusernameとpasswordに置き換えます。
まとめ
上記のセクションを考慮して、ホストが IP を変更した場合、ホストはブロックされていると結論付けました。または、失敗した接続要求の許可された数と比較して、より多くの接続エラーがあります。
MySQL では mysqladmin flush-hosts を使用し、phpMyAdmin では FLUSH HOSTS を使用して、host_cache をフラッシュすることでホストのブロックを解除できます。
