it-swarm.asia

Berapa lama "terlalu lama" untuk Koneksi MySQL untuk tidur?

Saya masuk ke server saya untuk memeriksa status database dan melihat pada SHOW PROCESSLIST; bahwa ada sejumlah besar koneksi yang tertidur sangat lama.

enter image description here 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.

39
Patrick

mysqld akan memutuskan 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 via 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 di my.cnf (mulai berlaku setelah mysqld dimulai ulang):

[mysqld]
interactive_timeout=180
wait_timeout=180

Jika Anda tidak ingin me-restart mysql, maka jalankan dua perintah ini:

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

Ini tidak akan menutup koneksi yang sudah terbuka. Ini akan menyebabkan koneksi baru ditutup dalam 180 detik.

54
RolandoMySQLDBA