Ubuntu

為什麼 MySQL 無法打開 hosts.allow/hosts.deny?

  • March 5, 2013

我有一個執行 Nexenta(OpenSolaris 核心,Ubuntu 使用者空間)的儲存伺服器,MySQL 在 ZFS 儲存陣列之上,使用 innodb_file_per_table 和 ulimit -n 設置為 8K。mysqltuner.pl 確認文件限制並聲稱有 169 個文件。

以下命令:

pfiles `fuser -c / 2>/dev/null

表示一個 mysqld 程序有 485 個文件/設備描述符(它們幾乎都是文件)所以我不知道調整腳本有多可靠,但它仍然小於 8K,而且這個列表也找不到其他程序已接近極限。全球使用的描述符總數約為 1K。

那麼是什麼導致 mysqld 不斷流式傳輸以下錯誤呢?

[date] [host] mysqld[pid]: warning: cannot open /etc/hosts.allow: Too many open files
[date] [host] mysqld[pid]: warning: cannot open /etc/hosts.deny: Too many open files

一切似乎實際上執行良好,但問題不斷湧入管理控制台並在新啟動時立即啟動(不僅可重現,而且始終來自 mysqld 並且始終來自主機文件,其權限是預設值-rw-r--r-- 1 root root)。當然,我可以從管理控制台抑制它,但我寧願深入了解它,仍然允許 mysqld 警告/錯誤到達管理控制台。

編輯:不僅實際的文件描述符完全在合理的範圍內,即使文件限制提高到 65535 並且始終僅在 hosts.allow/deny 上,問題也仍然存在(立即出現)。

鑑於當時 Nexenta 是基於 OpenSolaris 的,您可能會遇到這個問題。似乎文件描述符限制並沒有在整個系統中以一致的方式應用*。*

您實際上在設置中使用 hosts.allow/deny 嗎?

輸出是什麼lsof樣的?

引用自:https://serverfault.com/questions/457216