个人的博客的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
一查才知道是因为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应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/4937/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2012-1-31 18:48
评论列表
2012-2-16 01:29 | hxngb8kf
楼主说得好,支持一下
分页: 1/1 1