MySQL の Mysqladmin フラッシュホストでブロックを解除する

Mehvish Ashiq 2023年1月30日
  1. ホストをブロックする理由
  2. ブロックされたホストに対処する方法
  3. host_cache テーブルのフラッシュの影響
  4. ホストをフラッシュするさまざまな方法
  5. まとめ
MySQL の Mysqladmin フラッシュホストでブロックを解除する

このチュートリアルでは、ホストをブロックする理由について学習します。また、MySQLmysqladmin flush-hosts; を使用してブロックを解除する方法についても説明します。

次に、接続を成功させるために host_cache をフラッシュするさまざまな方法を見つけます。その後、host_cache テーブルをフラッシュした場合の影響についても見ていきます。

ホストをブロックする理由

次のいずれかの理由により、ホスト(host_name)がブロックされる可能性があります。

  • ホストのいずれかが IP アドレスを変更すると、ホスト host_name がブロックされます。
  • ホスト、host_name は多くの接続エラーのためにブロックされています。これは、mysqld が多くの中断された接続要求を受け取ったことを意味します。

ブロックされたホストに対処する方法

host_cache には、クライアントの HOSTIPSUM_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 権限を割り当てることにより、MySQLmysqladmin flush-hosts でブロックを解除できます。mysqladmin flush-hosts; を実行しますコマンドプロンプト/ターミナルからのステートメント。
  • mysqladmin -u username -p password flush-hosts; を使用することもできます host_cache テーブルをクリアします。usernamepasswordusernamepassword に置き換えます。

まとめ

上記のセクションを考慮して、ホストが IP を変更した場合、ホストはブロックされていると結論付けました。または、失敗した接続要求の許可された数と比較して、より多くの接続エラーがあります。

MySQL では mysqladmin flush-hosts を使用し、phpMyAdmin では FLUSH HOSTS を使用して、host_cache をフラッシュすることでホストのブロックを解除できます。

著者: Mehvish Ashiq
Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook