MySQL Connections'ın uyuması için ne kadar süredir?


38

Veritabanının durumunu kontrol etmek için sunucuma giriş yaptım ve SHOW PROCESSLIST;çok eski olan çok sayıda bağlantı olduğunu gördüm .

görüntü tanımını buraya girin Bağlantı kesilmeden önce bağlantı süresi ne kadar olmalıdır?

MySQL 5.0.51a-3ubuntu5.4'te zaman sınırını nasıl ayarlarım?

Not:

PHP 5.2.x ve symfony framework 1.2 kullanıyorum.


Yanıtlar:


53

mysqld iki sunucu seçeneğine göre veritabanı bağlantılarını zaman aşımına uğratır:

Her ikisi de varsayılan olarak 28.800 saniyedir (8 saat).

Bu seçenekleri /etc/my.cnf

Bağlantılarınız kalıcıysa (aracılığıyla açıldıysa mysql_pconnect) bu sayıları 600 (10 dakika) ve hatta 60 (1 dakika) gibi makul bir şeye indirgeyebilirsiniz. Veya, uygulamanız iyi çalışıyorsa, varsayılanı bırakabilirsiniz. Bu size kalmış.

Bunları aşağıdaki gibi ayarlamanız gerekir my.cnf( mysqldyeniden başlattıktan sonra yürürlüğe girer ):

[mysqld]
interactive_timeout=180
wait_timeout=180

MySQL'i yeniden başlatmak istemiyorsanız, bu iki komutu çalıştırın:

SET GLOBAL interactive_timeout = 180;
SET GLOBAL wait_timeout = 180;

Bu, zaten açık olan bağlantıları kapatmaz. Bu, yeni bağlantıların 180 saniye içinde kapanmasına neden olur.


öyleyse /etc/my.cnf ben sadece koymak istiyorum wait_timeout=180?
Patrick

@Patrick Evet, ancak interactive_timeout ve wait_timeout öğelerini 180 olarak ayarlamanız gerekir. Yanıtınız için cevabımı güncelledim.
RolandoMySQLDBA

Bu dosya başka bir yerde dev.mysql.com/doc/refman/5.1/en/option-files.html olabilir ve bu seçenekler açıklanmayabilir (kendiniz yazınız)
nicolallias
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.