mysql otomatik ayarlı maks. bağlantı değerleri


11

My.cnf dosyasında 2000'e kadar maksimum bağlantı ayarladım.

max_connections=2048

5.5.20'ye yükselttim ve şimdi hata günlüğünde aşağıdaki satırı görüyorum.

120201 19:40:24 [Warning] Changed limits: max_open_files: 1024  max_connections: 214  table_cache: 400

MySQL neden maksimum bağlantı değerini 214 olarak değiştirdi?

# mysqladmin variables | grep max_connections
| max_connections | 214                                               

İşletim sistemi tarafından kısıtlanan yumuşak ve sabit açık dosyalar 1024

# ulimit -Sa | grep "open files"
open files                      (-n) 1024

# ulimit -Ha | grep "open files"
open files                      (-n) 1024

Kullanılan maksimum bağlantı sayısı:

# mysql -e"show status like '%used_connections%'"
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| Max_used_connections | 95     |
+----------------------+-------+

1
Ulimit açık dosyalarını 4096 gibi daha yüksek ayarlamayı deneyin.ulimit -n 4096

Davranış değişti mi? 5.0.77 sürümü vardı ve bu sorunu fark etmedim. Sadece 5.5.20'ye yükselttiğimde değerleri değiştirdim!
shantanuo

1
Sadece bariz olana soracağım. Yükseltmenin my.cnf'nizi değiştirmediğini onayladınız mı? Ayrıca, hangi işletim sistemi? Bu gibi bir paket yöneticisi tarafından yüklendi yummi? Varsa, hangi paket?
Derek Downey

Yanıtlar:


6

Bana öyle geliyor ki. Max_connections daha büyük olamaz, çünkü open_files_limit çok düşük. Her bağlantı için MySQL birkaç dosya açar. Buraya bir bak .

Bu nedenle, işletim sisteminizde açık dosya sınırını artırmanız gerekir ve daha sonra daha yüksek max_connections değeri koyabilirsiniz.


5

Bu burada stackoverflow cevap verdi aynı sorun gibi görünüyorCentOS 7 ve MySQL 5.6.26 kullanmama rağmen

Hem mysql kullanıcısı (limit.conf içinde) hem de mysql hizmeti (mysql.service dosyasında) için açık dosya sınırınızı yükseltmeniz gerekir.

bu iki satırı /etc/security/limits.conf dosyasına ekleyin

mysql hard nofile 65535
mysql soft nofile 65535

bu satırı /usr/lib/systemd/system/mysqld.service öğesine ekleyin ([hizmet] bölümünde)

LimitNOFILE=65535

daha sonra yeniden başlatın ve bu hata mesajlarının mysql hata günlüğünüzden kaybolduğunu kontrol edin.



@Nav - Evet, işletim sisteminiz uygun sayıda dosya tanıtıcısının mysqld tarafından kullanılmasına izin vermiyorsa yapılandırılan maksimum bağlantı sayısını kullanamazsınız
MNB

Ayrıca, Ubuntu 15.04+ farklı bir yaklaşıma ihtiyaç duyuyor: stackoverflow.com/questions/23977095/…
Nav

0

Bu yeni mysqld bazı hata gibi görünüyor. Ben de aynı problemi yaşadım. Maks. Bağlantıyı 700 olarak ayarlamak işe yaradı, ancak 900'e ayarlarsam, başlatma sırasında 214'e sıfırlandı. Bu maksatlı bir değişiklik olsaydı, onu 700'e veya benzeri bir şeye düşürürdü, 214 değeri mantıklı değil.
Her neyse, tanımlayıcı sınırını ulimit -n ile artırmak sorunu çözer.

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.