问题:
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
继续观察,未再次出现以上异常.
原文链接:https://www.th7.cn/db/mysql/201503/93877.shtml