程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 教你輕松解決 MySQL中文件未找到的現象

教你輕松解決 MySQL中文件未找到的現象

編輯:關於MYSQL數據庫

如果遇到“ERROR '...'未發現(errno: 23)”,“無法打開文件:... (errno: 24)”,或來自MySQL的具有errno 23或errno 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系統變量。

設置這些值的最簡單方式是在選項文件中增加1個選項。

如果mysqld的版本較低,不支持設置打開文件的數目,可編輯mysqld_safe腳本。在腳本中有1個注釋掉的行ulimit -n 256。你可以刪除‘#’字符取消對該行的注釋,更改數值256,以設置MySQLd可用的文件描述符數目。

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

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved