Saat aplikasi gagal menutup koneksi yang tidak digunakan, wait_timeout
low rendah value membantu Anda menghindari melebihi jumlah koneksi yang diizinkan. Gunakan petunjuk berikut untuk menyetel vakue ini:
-
Masuk ke server Anda dengan menggunakan Secure Shell® (SSH).
-
Gunakan perintah sudo untuk mengedit
my.cnf
, file konfigurasi MySQL®.$ sudo vi /etc/my.cnf
-
Temukan konfigurasi batas waktu dan buat penyesuaian yang sesuai dengan server Anda.
wait_timeout = 28800 interactive_timeout = 28800
-
interactive_timeout
value tidak memengaruhi koneksi aplikasi web apa pun. Sedikitwait_timeout
adalah praktik terbaik yang normal. -
Lingkungan PHP stateless bekerja dengan baik dengan batas waktu 60 detik atau kurang. Aplikasi yang menggunakan kumpulan koneksi (Java®, .NET®, dan seterusnya) perlu menyesuaikan
wait_timeout
nilai untuk mencocokkan pengaturan kumpulan koneksi mereka. Default8 hours = 28800
detik bekerja dengan baik dengan kumpulan koneksi yang dikonfigurasi dengan benar. -
Konfigurasikan
wait_timeout
menjadi sedikit lebih lama dari perkiraan masa pakai koneksi kumpulan koneksi aplikasi sebagai pemeriksaan keamanan. Pertimbangkan untuk mengubah nilai secara online karena itu tidak memerlukan restart MySQL, dan Anda dapat menyesuaikannya saat server berjalan tanpa menimbulkan downtime. Ubah nilainya menjadiset global wait_timeout=60
, dan setiap sesi yang baru dibuat akan mewarisinya. Pastikan untuk mempertahankan pengaturan dimy.cnf
. Semua koneksi yang ada harus mencapai nilai lamawait_timeout
jika aplikasi meninggalkan koneksi. Jika Anda memiliki tugas pelaporan yang melakukan pemrosesan lokal lebih lama saat dalam transaksi, Anda mungkin mempertimbangkan untuk memiliki masalah tugas tersebutset session wait_timeout=3600
saat terhubung.
-
-
Simpan perubahan dan keluar dari editor.
-
Gunakan perintah berikut untuk me-restart MySQL dan menerapkan perubahan, jika diperlukan:
$ sudo /etc/init.d/mysql restart