mysql报错打开文件太多_Linux下MySQL打开文件数错误问题的解决

错误信息如下:

.....

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 选项无法生效, 因为内核限制了普通用户的最多打开文件数.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值