일반적으로는 my.cnf 파일에 적용한 후 재 기동 해 주면 변경이 되지만 , 간혹 systemctl(service)로 기동하는 경우 적용이 안 되는 경우가 있다.
이럴 경우 다음과 같이 설정해서 변경해 주면 된다.
1. O/S 에서 /etc/security/limits.conf 파일에서 파일 limit 제한 해제
* - nofile 65536 OR * hard nofile 65536 * soft nofile 65536 OR mysql 유저 mysql hard nofile 65536 mysql soft nofile 65536 |
2. systemctl로 기동 될때 사용하는 파라미터 파일들에서 "LimitNOFILE" 값을 설정
읽어 들이는 파일 순서는 다음과 같다. (limits.conf 파일은 없으니 생성한 후에 거기다가 설정 하면 된다.)
그래서 먼저 읽어 들인 값을 사용하게 된다.
limits.conf 파일을 생성해서 사용 할거면 migrated-from-my.cnf-settings.conf 파일에 LimitNOFILE 값이 있는지 확인해야 함.
1. /etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf 2. /etc/systemd/system/mysqld.service.d/limits.conf 3. /usr/lib/systemd/system/mariadb.service 4. /usr/lib/systemd/system/mariadb.service 5. /etc/systemd/system/mysql.service 6. /etc/systemd/system/mysqld.service |
/etc/systemd/system/mysqld.service.d/limits.conf 파일에 다음 추가
infinity는 자동으로 Max값을 넣는다.
[Service] LimitNOFILE=infinity |
3. 설정 reload 및 재 시작
systemctl daemon-reload
systemctl restart mariadb
MariaDB [(none)]> select @@open_files_limit ;
+--------------------------+
| @@open_files_limit |
+--------------------------+
| 16291 |
+--------------------------+