写此文章的原由是Centos 7.x环境安装MySQL时遇到了问题,以前在Centos 6.x环境安装MySQL,在/etc/security/limits.conf文件中对打开文件nofile作了限制,重启MySQL后生效,可是在Centos 7.x环境却没用。php
分析发现/etc/security/limits.conf只对pam登陆用户起做用,而若经过systemd启动服务,此配置文件不起做用。对于systemd启动的服务,按照优先级(后者覆盖前者)起做用的是:mysql
% vi /etc/systemd/system.conf ... DefaultLimitNOFILE=50000 ...
% vi /usr/lib/systemd/system/mysqld.service [Service] ... LimitNOFILE = 20000 ... % systemctl deamon-reload % systemctl restart mysqld
检查:linux
% cat /proc/13010/limits Limit Soft Limit Hard Limit Units Max open files 20000 20000 files ...
注意:上面只是争对系统级服务,即便用systemctl start/stop管理的服务,而对于systemctl --user管理的用户级服务(PS:很是少用,且须要特殊配置),环境变量或limits限制由以下文件限制:sql
参考文档:shell