Linux-mysql报:Too many open files错误

问题:

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