背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  
阅读内容

Linux下MySQL打开文件数错误问题的解决

[日期:2007-09-20] 来源:Linux公社  作者:Linuxidc [字体: ]


  错误信息如下:
  .....
  070813 13:10:17 [ERROR] /usr/local/mysql/bin/mysqld: Can't open file: './yejr/access.frm' (errno: 24)
  070813 13:10:17 [ERROR] /usr/local/mysql/bin/mysqld: Can't open file: './yejr/accesslog.frm' (errno: 24)
  ......
  070813 13:10:17 [ERROR] Error in accept: Too many open files
  ....

  注意到, 系统错误代号是 24, 用 perror 来查看一下具体的错误信息是什么:

  [root@yejr]# /usr/bin/perror 24
  OS error code 24: Too many open files

  原来是打开文件太多了, 好办.用sysctl来调整一下就好了:
  [root@yejr]# sysctl -w fs.file-max=43621
  [root@yejr]# sysctl -a | grep fs.file-max
  fs.file-max = 43621

  FreeBSD 下也用sysctl来调整:
  [root@yejr]# sysctl -w kern.maxfiles=123280
  [root@yejr]# sysctl -a | grep kern.maxfiles
  kern.maxfiles = 123280

  最后, 还有最重要的一点是, 修改 mysqld 的配置文件 my.cnf, 增加如下一行:

  open_files_limit = 4096
  #根据自己的情况适当调整,系统默认值是
  # max_connections*5 或 max_connections + table_cache*2

  然后, 以root身份重新启动 mysqld. 在这里, 尽管 my.cnf 中指定的运行用户不是root, 一样可以以root身份来启动mysqld, 否则 open_files_limit 选项无法生效, 因为内核限制了普通用户的最多打开文件数.


相关资讯       linux mysql 
本文评论       全部评论
发表评论
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款


点评: 字数
姓名:

L
I
N
U
X


GOOGLE搜索
Google