[ 来源:http://www.it55.com | 作者: | 时间:2007-09-07 | 收藏 | 推荐 ] 【大 中 小】
我们会时不时的遇到这样那样的mysql错误,这里我们说说“Too many open files”错误分析及解决方法
错误信息如下: 免费壁纸下载http://www.it55.com
.....
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 来查看一下具体的错误信息是什么:
免费网页模版下载http://www.it55.com
[root@yejr]# /usr/local/mysql/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来调整: http://www.it55.com/
[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 选项无法生效, 因为内核限制了普通用户的最多打开文件数. 45398 http://www.it55.com it55学习IT知识,享受IT生活 4dfkjn
作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究。 免费网页模版下载http://www.it55.com
(编辑:IT资讯之家 www.it55.com)