Welcome 微信登录

首页 / 数据库 / 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 选项无法生效, 因为内核限制了普通用户的最多打开文件数.在freebsd和linux下安装mysql+php+apache2教你如何更改MySQL数据库默认目录位置相关资讯      linux mysql 
  • Linux下MySQL的简单操作笔记  (08/12/2015 10:50:28)
  • Linux下MySQL报Table "xxx" doesn"  (11/22/2014 07:37:47)
  • Linux下解决MySQL无法远程连接问题  (11/14/2013 07:18:33)
  • Linux开启MySQL远程连接  (11/22/2014 07:40:48)
  • Linux系统MySQL数据库远程设置  (01/10/2014 09:35:35)
  • Linux网站架构系列之MySQL----部署  (11/06/2013 20:21:28)
本文评论 查看全部评论 (0)
表情: 姓名: 字数