在 MySQL 中使用 Mysqladmin 重新整理主機解除阻塞

Mehvish Ashiq 2023年1月30日
  1. 阻止主機的原因
  2. 如何處理被阻止的主機
  3. 重新整理 host_cache 表的效果
  4. 重新整理主機的不同方法
  5. まとめ
在 MySQL 中使用 Mysqladmin 重新整理主機解除阻塞

在本教程中,我們將瞭解阻止主機的原因。我們還將瞭解如何使用 mysqladmin flush-hosts; 解鎖在 MySQL

然後,我們將找到不同的方法來重新整理 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 解除對主機的阻塞,你可能會產生一種或多種影響。下面列出了這些影響。

  • 記憶體中的 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-hostsphpMyAdmin 中的 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