Saya masuk ke server saya untuk memeriksa status database dan memperhatikan SHOW PROCESSLIST;
bahwa ada sejumlah besar koneksi yang sudah sangat tua.
Berapa lama batas waktu koneksi sebelum koneksi harus dimatikan?
Bagaimana cara menetapkan batas waktu di MySQL 5.0.51a-3ubuntu5.4?
catatan:
Saya menggunakan PHP 5.2.x dan framework symfony 1.2.
Jawaban:
mysqld
akan menghentikan koneksi basis data berdasarkan dua opsi server:Keduanya secara default 28.800 detik (8 jam).
Anda dapat mengatur opsi ini di
/etc/my.cnf
Jika koneksi Anda persisten (dibuka melalui
mysql_pconnect
), Anda dapat menurunkan angka-angka ini ke sesuatu yang masuk akal seperti 600 (10 menit) atau bahkan 60 (1 menit). Atau, jika aplikasi Anda berfungsi dengan baik, Anda dapat membiarkan default. Ini terserah kamu.Anda harus mengatur ini sebagai berikut dalam
my.cnf
(berlaku setelahmysqld
dimulai ulang):Jika Anda tidak ingin me-restart mysql, maka jalankan dua perintah ini:
Ini tidak akan menutup koneksi yang sudah terbuka. Ini akan menyebabkan koneksi baru ditutup dalam 180 detik.
sumber
wait_timeout=180
?