在 MySQL 中使用 Mysqladmin 重新整理主機解除阻塞
在本教程中,我們將瞭解阻止主機的原因。我們還將瞭解如何使用 mysqladmin flush-hosts;
解鎖在 MySQL
。
然後,我們將找到不同的方法來重新整理 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
解除對主機的阻塞,你可能會產生一種或多種影響。下面列出了這些影響。
- 記憶體中的
host_cache
將被清除。 - 取消阻止之前被阻止的主機。
host_cache
中的所有行都將被刪除。
重新整理主機的不同方法
這些是你可以用來重新整理主機的不同方法。你必須為此提供所需的許可權。
- 通過提供
SUPER
許可權,你可以更改host_cache_size
系統變數的值。 - 通過賦予
DROP
許可權,截斷host_cache
表。你可以使用TRUNCATE TABLE
語句來完成。 - 如果你使用
phpMyAdmin
,請使用FLUSH HOSTS;
。它需要RELOAD
許可權。 - 通過分配
RELOAD
許可權,你可以使用MySQL
中的mysqladmin
重新整理主機解除阻塞。執行mysqladmin flush-hosts;
命令提示符/終端的語句。 - 你也可以使用
mysqladmin -u username -p password flush-hosts;
清除host_cache
表。用你的使用者名稱
和密碼
替換使用者名稱
和密碼
。
まとめ
考慮到上述部分,我們得出的結論是,如果你的主機更改了 IP,則該主機被阻止。或者,與允許的失敗連線請求數相比,你有更多的連線錯誤。
你可以通過使用 MySQL 中的 mysqladmin flush-hosts
和 phpMyAdmin
中的 FLUSH HOSTS 重新整理你的 host_cache
來取消阻止主機。