top
Loading...
A.2.17.文件未找到
A.2.17. 文件未找到

如果遇到“ERROR '...'未發現(errno: 23)”無法打開文件:... (errno: 24)”,或來自MySQL的具有errno 23errno 24的其它錯誤,它表示未為MySQL服務器分配足夠的文件描述符。你可以使用perror實用工具來了解錯誤編號的含義:

shell> perror 23
錯誤代碼23:文件表溢出
shell> perror 24
錯誤代碼24:打開文件過多
shell> perror 11
錯誤代碼11:資源暫時不可用

這里的問題是,mysqld正試圖同時打開過多的文件。你可以通知mysqld不要一次打開過多文件,或增加mysqld可用文件描述符的數目。

要想通知mysqld將一次打開的文件控制在較小的數目上,可降低table_cache系統變量的值(),從而減少表高速緩沖(默認值為64)。降低max_connections的值也能降低打開文件的數目(默認值為100)。

要想更改mysqld可用的文件描述符的數目,可在mysqld_safe上使用“--open-files-limit”選項或設置(自MySQL 3.23.30開始)open_files_limit系統變量。請參見5.3.3節,“服務器系統變量”。設置這些值的最簡單方式是在選項文件中增加1個選項。請參見4.3.2節,“使用選項文件”。如果mysqld的版本較低,不支持設置打開文件的數目,可編輯mysqld_safe腳本。在腳本中有1個注釋掉的行ulimit -n 256。你可以刪除#’字符取消對該行的注釋,更改數值256,以設置mysqld可用的文件描述符數目。

“--open-files-limit”ulimit能夠增加文件描述符的數目,但最高不能超過操作系統限制的數目。此外還有1個“硬”限制,僅當以根用戶身份啟動mysqld_safemysqld時才能覆蓋它(請記住,在該情況下,還需使用“--user”選項啟動服務器,以便在啟動后不再以根用戶身份繼續運行)。如果需要增加操作系統限制的對各進程可用文件描述符的數目,請參閱系統文檔。

注釋:如果運行tcsh shellulimit不工作!請求當前限制值時,tcsh還能通報不正確的值。在該情況下,應使用sh啟動mysqld_safe

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/problems.html
北斗有巢氏 有巢氏北斗