MySQL open_files_limit - bu değişkeni değiştiremez


17

Benim open_files_limitmysql için sadece çünkü sorunlarıyla çalışıyorum 1024.

Centos 7, MySQL Topluluk Sunucusu 5.6.22 günlüğü

Aslında bir WHM sunucusu (uzak mysql) için mysql adanmış bir vps, ama bu noktanın yanında olmalıdır.


Yapılandırma dosyaları

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

Komut çıkışları

Kök için işletim sistemim open_files_limit:

[root@mack ~]# ulimit -Hn -Sn
open files                      (-n) 100000
open files                      (-n) 100000

Ve sonra mysql kullanıcısı olarak:

[root@mack ~]# su mysql
bash-4.2$ ulimit -Hn -Sn
open files                      (-n) 100000
open files                      (-n) 100000

MySQL durumu:

[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'i yeniden başlattım, durdum, durduğundan emin olmak için durumu kontrol ettim, sonra başlattım ve tüm sistemi yeniden başlattım.

İşe yarayan kanıt 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)

Şimdi burada kan basıncım yükseliyor:

mysql> show global variables like 'open%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| open_files_limit | 1024  |
+------------------+-------+
1 row in set (0.00 sec)

Neyi kaçırıyorum? Değerimin üzerine yazan başka bir my.cnf var mı?

[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

Bunların hepsini inceledim ve open_files_limit'ten bahsetmiyorum. Bunun için, ben grepbu ayarı arayan bu yoluyla oldu:

[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" ;;

Ama hayır, etkilemezler.


1
İşte yeniden başlatma sırasında MySQL günlüğünden bir çerez var: 2014-12-24 10:41:09 3268 [Warning] Buffered warning: Could not increase number of max_open_files to more than 1024 (request: 100000). Bu, MySQL'in limitini arttırmak için DENEYDİĞİ anlamına gelir.
user24601

Yanıtlar:


18

Düzenlemem /usr/lib/systemd/system/mysqld.serviceve eklemem gerekiyordu

LimitNOFILE=infinity
LimitMEMLOCK=infinity

Sonra çalıştırın systemctl daemon-reloadve systemctl restart mysql.service.

Şimdi değişken 65536bilinmeyen bir nedenden dolayı sınırlıdır, ancak şimdilik bununla yaşayabilirim.

Bunu /unix/152186/mysql-max-open-files-more-than-1024#answer-157910 adresinde bulabilirsiniz.


4
/ Usr / lib / dosya, düzenlenmemesi için bir uyarı içerir. Centos7'deki MariaDB /etc/systemd/system/mariadb.service.d/limits.confiçin aşağıdaki içeriğe sahip bir dosya oluşturdum[Service] LimitNOFILE=infinity LimitMEMLOCK=infinity
Chris Wheeler
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.