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_timeoutvalue tidak memengaruhi koneksi aplikasi web apa pun. Sedikitwait_timeoutadalah 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_timeoutnilai untuk mencocokkan pengaturan kumpulan koneksi mereka. Default8 hours = 28800detik bekerja dengan baik dengan kumpulan koneksi yang dikonfigurasi dengan benar. -
Konfigurasikan
wait_timeoutmenjadi 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_timeoutjika 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=3600saat 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