解决 Mysql 错误日志出现 "Error in accept: Too many open files"

jackxiang 2012-1-31 17:47 | |
   个人的博客的mysql服务down掉,查看日志,日志中出现了这样的错误提示:
一查才知道是因为open files的原因,linux 系统默认的opens file是1024,可以使用ulimit -a 查看,这个是系统级的限制。另外在mysql中默认的open files也是1024,所以要同时调整这两个参数才可以。如何调整呢?

一、调整系统级的open files:

打开vi /etc/security/limits.conf文件:在文件里添加一行:* – nofile 4096,这样就把open files调整到了4096。

二、调整mysql的open files:

打开vi /etc/my.cnf文件,在[mysqld]段中添加一行:open_files_limit = 4096,重启mysql即可!

修改:/etc/my.cnf
[[root@test0001 ~]# vi /etc/my.cnf
[mysqld]
open_files_limit = 30000            
重启 mysqld
service mysqld restart
再次查看:
mysql> show global variables like '%open%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| have_openssl     | NO    |
| open_files_limit | 30000 |
| table_open_cache | 2048  |
+------------------+-------+
3 rows in set (0.00 sec)    
至此问题解决!


附录:
open_files_limit  这个数字少了点,这里有个算法:
max_open_files_1 = max_connections + table_cache * 2 = 100 + 1000 * 2 = 2100
max_open_files_2 = max_connections*5 = 100 * 5 = 500

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/4937/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2012-1-31 18:48
评论列表
2012-2-16 01:29 | hxngb8kf Email Homepage
楼主说得好,支持一下
分页: 1/1 第一页 1 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]