在MYSQL数据库中,在分区表较多的情况下,经常发现下面的错误:
160317 17:04:14 [ERROR] Error in accept: Too many open files
处理这个问题要在操作系统层面和数据库层解决:
首先查看MYSQL打开的文件数量
lsof -p mysql_pid|wc -l 查看MYSQL打开的数量
1、数据库层面
设置下面的参数:
open_files_limit = 4096 #设置整个MYSQL的文件打开数量
innodb_open_files = 300 #设置innodb引擎能打开的文件数量
对于不能设置该参数的RDS,需要根据MYSQL的分区情况,删除老的分区。
2、操作系统层面
设置系统能打开的文件最大数量
sysctl -w fs.file-max=65535
本文详细介绍了如何通过调整MySQL数据库配置和操作系统设置来解决因大量分区表导致的系统资源(尤其是文件句柄)过度消耗的问题。包括在数据库层面设置open_files_limit和innodb_open_files参数,以及在操作系统层面调整file-max参数,以优化资源使用并避免错误发生。
88

被折叠的 条评论
为什么被折叠?



