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
のmysqladmin
flush-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
をフラッシュすることでホストのブロックを解除できます。