寫此文章的原由是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