Too many open files) when using LOCK TABLES

背景:MySQL 数据库执行逻辑备份 mysqldump 出现以下报错:

Can't open file: './callcenter/info.frm' (errno: 24 - Too many open files) when using LOCK TABLES

一、分析问题
1、查看相关变量

mysql> SHOW GLOBAL STATUS LIKE 'open%tables';
+---------------+--------+
| Variable_name | Value  |
+---------------+--------+
| Open_tables   | 1024   |
| Opened_tables | 564478 |
+---------------+--------+
2 rows in set (0.00 sec)

2、查看系统最大打开文件数。

[root@localhost callcenter]# ulimit -n
1024

3、查看数据库数据目录文件数量

ll /opt/mysql/data/callcenter/|wc -l
7508

二、解决方案

4、修改系统最大打开文件数

vi /etc/security/limits.conf
* soft nproc 80000
* hard nproc 80000
* soft nofile 80000
* hard nofile 80000

sysctl -p
5、临时修改最大打开文件数

ulimit -n 65535

6、开机加载

vi /etc/rc.local 
ulimit -n 65535

7、在 my.cnf mysqld添加
open_files_limit = 65535
重启mysql服务

8、查看

mysql> SHOW VARIABLES LIKE '%open_files_limit%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| open_files_limit | 65535 |
+------------------+-------+
上一篇:POJ 3286 How many 0's?


下一篇:How many integers can you find HDU - 1796