工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆

有关Mysql Errno:24的解决方案

100710 10:35:49 [ERROR] /www/servers/mysql/libexec/mysqld: Can't open file: './ix/ecm_sessions.frm' (errno: 24)
100710 10:35:49 [ERROR] /www/servers/mysql/libexec/mysqld: Can't open file: './ix/ecm_sessions.frm' (errno: 24)
100710 10:35:49 [ERROR] /www/servers/mysql/libexec/mysqld: Can't open file: './ix/ecm_sessions.frm' (errno: 24)

A.2.17. 文件未找到

如果遇到“ERROR '...'未发现(errno: 23)”无法打开文件:... (errno: 24)”,或来自MySQL的具有errno 23errno 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系统变量。请参见5.3.3节,“服务器系统变量”。设置这些值的最简单方式是在选项文件中增加1个选项。请参见4.3.2节,“使用选项文件”。如果mysqld的版本较低,不支持设置打开文件的数目,可编辑mysqld_safe脚本。在脚本中有1个注释掉的行ulimit -n 256。你可以删除#’字符取消对该行的注释,更改数值256,以设置mysqld可用的文件描述符数目。

“--open-files-limit”ulimit能够增加文件描述符的数目,但最高不能超过操作系统限制的数目。此外还有1个“硬”限制,仅当以根用户身份启动mysqld_safemysqld时才能覆盖它(请记住,在该情况下,还需使用“--user”选项启动服务器,以便在启动后不再以根用户身份继续运行)。如果需要增加操作系统限制的对各进程可用文件描述符的数目,请参阅系统文档。

注释:如果运行tcsh shellulimit不工作!请求当前限制值时,tcsh还能通报不正确的值。在该情况下,应使用sh启动mysqld_safe

来自mysql手册 http://dev.mysql.com/doc/refman/5.1/zh/problems.html

 

此次修改了 max_connections,将其原来的500减小到200,正常

问题的原因,可能是其它人修改了配置,开始时连mysql都启动不了,在日志里,有比较多的如

100710 10:08:58 [ERROR] /www/servers/mysql-5.1.47/libexec/mysqld: Table './mysql/db' is marked as crashed and last (automatic?)
repair failed 

100710 10:08:58 [ERROR] Fatal error: Can't open and lock privilege tables: Table './mysql/db' is marked as crashed and last (aut
omatic?) repair failed

开始以为是mysql的数据表文件坏了,且又修复不了,便重新安装了份mysql的库文件,再恢复相关的用户表,后可以启动了,但仍很多上面提示的 Can't open file,再google后,再调整,正常

 

« 上一篇 | 下一篇 »

Trackbacks

点击获得Trackback地址,Encode: UTF-8

发表评论

评论内容 (必填):