问题:
Linux 资料库异常,总是自动停止,重启后相隔 1-2 分钟就会停止.
检视资料库日志显示:
[ERROR] /usr/sbin/mysqld: Can’t open file: ‘./eximstats/smtp.frm’ (errno: 24 – Too many open files)
大量关于 eximstats 资料库相关的错误提示.
初次,认为为该资料库表存在问题,尝试修复该资料库.
修复方式:
<1>登入 phpmyadmin 进行修复
<2>命令修复 mysqlcheck -r eximstats
<3>也可以尝试修复全部资料库 mysqlcheck –all-databases -r
修复成功后,重启 mysql,发现问题依然存在.
经搜寻后,我发现,这个问题可能是由于开启的档案限制不够高.
查询当前档案限制:
mysql> SHOW VARIABLES LIKE ‘open_files_limit’;
+——————+——-+
| Variable_name | Value |
+——————+——-+
| open_files_limit | 5000 |
+——————+——-+
1 row in set (0.00 sec)
查询当前正开启的档案数:
mysql> SHOW GLOBAL STATUS LIKE ‘Open_files’;
+—————+——-+
| Variable_name | Value |
+—————+——-+
| Open_files | 3338 |
+—————+——-+
1 row in set (0.00 sec)
从上述结果看,我目前开启的档案未超过当前档案限制. 因为目前 mysql 执行时正常,但是经观察每次重启 mysql 后,相隔 1-2 分钟 mysql 就会出现停止执行,我们也无法检视相关引数.
尝试上调 mysql 档案限制:
/etc/my.cnf
新增或修改:
open_files_limit=50000
再次重启 mysql
继续观察,未再次出现以上异常.
原文连结:http://www.th7.cn/db/mysql/201503/93877.shtml