내 open_files_limit
mysql 만 있기 때문에 문제 가 발생합니다 1024
.
Centos 7, MySQL 커뮤니티 서버 5.6.22-log
실제로 WHM 서버 (원격 mysql)를 위해 mysql 전용의 vps이지만, 그 지점 옆에 있어야합니다.
구성 파일
my.cnf
:
[mysqld]
open_files_limit = 100000
open-files-limit = 100000 #I've read that the dashes are required on older versions, but I threw it in anyway.
innodb_buffer_pool_size = 600M
...
# and the same for mysqld_safe
[mysqld_safe]
open_files_limit = 100000
open-files-limit = 100000
...
/etc/security/limits.conf
:
* hard nofile 100000
* soft nofile 100000
명령 출력
루트에 대한 내 os open_files_limit :
[root@mack ~]# ulimit -Hn -Sn
open files (-n) 100000
open files (-n) 100000
그리고 mysql 사용자로서 :
[root@mack ~]# su mysql
bash-4.2$ ulimit -Hn -Sn
open files (-n) 100000
open files (-n) 100000
MySQL 상태 :
[root@mack ~]# service mysql status
Redirecting to /bin/systemctl status mysql.service
mysqld.service - MySQL Community Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled)
Active: active (running) since Wed 2014-12-24 10:41:09 EST; 40min ago
Process: 2982 ExecStartPost=/usr/bin/mysql-systemd-start post (code=exited, status=0/SUCCESS)
Process: 2970 ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 2981 (mysqld_safe)
CGroup: /system.slice/mysqld.service
ââ2981 /bin/sh /usr/bin/mysqld_safe
ââ3268 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mysqld.log --open-files-limit=100000 --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/my...
Dec 24 10:41:08 mack systemd[1]: Starting MySQL Community Server...
Dec 24 10:41:09 mack mysqld_safe[2981]: 141224 10:41:09 mysqld_safe Logging to '/var/log/mysqld.log'.
Dec 24 10:41:09 mack mysqld_safe[2981]: 141224 10:41:09 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Dec 24 10:41:09 mack systemd[1]: Started MySQL Community Server.
mysql을 다시 시작하고 중지하고 상태를 확인하여 중지되었는지 확인한 다음 시작한 다음 전체 시스템을 재부팅했습니다.
my.cnf
작동하는 증거 :
mysql> show global variables like '%buffer_pool_size%';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| innodb_buffer_pool_size | 629145600 |
+-------------------------+-----------+
1 row in set (0.00 sec)
이제 내 혈압이 올라갑니다.
mysql> show global variables like 'open%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 1024 |
+------------------+-------+
1 row in set (0.00 sec)
내가 무엇을 놓치고 있습니까? 내 가치를 덮어 쓰는 또 다른 my.cnf가 있습니까?
[root@mack ~]# find / -name "*.cnf"
/usr/share/mysql/my-default.cnf
/usr/share/doc/mysql-community-server-5.6.22/my-default.cnf
/var/lib/mysql/auto.cnf
/etc/my.cnf
/etc/pki/tls/openssl.cnf
나는 그 모든 것을 조사했으며 open_files_limit에 대한 언급이 없습니다. 그것을 위해, 나는 grep
설정을 찾는 이들을 겪었습니다.
[root@mack ~]# grep -r "open_files_limit" /etc
/etc/my.cnf:open_files_limit = 100000
/etc/my.cnf:open_files_limit = 100000
[root@mack ~]# grep -r "open_files_limit" /var
[root@mack ~]# grep -r "open_files_limit" /usr
/usr/share/vim/vim74/syntax/ora.vim:syn keyword oraKeywordUnd _number_cached_attributes _offline_rollback_segments _open_files_limit
Binary file /usr/sbin/mysqld matches
Binary file /usr/sbin/mysqld-debug matches
Binary file /usr/bin/mysqlbinlog matches
/usr/bin/mysqld_safe: --open_files_limit=*) open_files="$val" ;;
그러나 그들은 영향을 미치지 않습니다.
답변
편집 /usr/lib/systemd/system/mysqld.service
하고 추가해야했습니다
LimitNOFILE=infinity
LimitMEMLOCK=infinity
그런 다음 systemctl daemon-reload
및을 실행하십시오 systemctl restart mysql.service
.
이제 변수가 65536
알려지지 않은 이유로 제한 되었지만 지금은 그와 함께 살 수 있습니다.
/unix/152186/mysql-max-open-files-more-than-1024#answer-157910 에서 이것을 발견했습니다.