Pendahuluan:
Saat saya memutakhirkan dari Mysql 5.5 ke 5.6 tiba-tiba beberapa situs menampilkan kesalahan berikut:...... Too many open files
Masalahnya berkaitan dengan keterbatasan yang diberikan pada sistem dan sistem PAM untuk membuka maksimal 1024 file. Setelah melakukan beberapa penelitian saya menemukan situs ini di bawah sini yang dalam bahasa Jerman di mana berikut ini dijelaskan:
https://www.filewalker.de/ulimit-mysql-open_files_limit/
LANGKAH:
Periksa batas file-open atau menjalankan server mysql:mysql -p -u root
mysql> SHOW VARIABLES LIKE 'open%';
Keluaran yang sangat mungkin:+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 1024 |
+------------------+-------+
1 row in set (0.00 sec)
Itu berarti server Mysql dapat membuka maksimum 1024 yang tampaknya terlalu kecil untuk Mysql 5.6.
Meningkatkan batas ini
Edit file /etc/security/limits.conf dan tambahkan baris berikut:mysql hard nofile 65535
mysql soft nofile 65535
Ini akan menaikkan batas file yang terbuka menjadi 65535 untuk pengguna mysql saja.
Jika Anda ingin menaikkan batas ini untuk semua pengguna, ganti kata mysql untuk *
mis.* hard nofile 65535
* soft nofile 65535
Dan menurut situs ini edit file /etc/pam.d/common-session dan tambahkan baris ini di akhir:session required pam_limits.so
Catatan: Saya tidak yakin langkah ini benar-benar diperlukan. Beberapa orang memang mencoba tanpanya dan itu juga berhasil. Bagi saya, di Debian Wheezy, saya harus melakukan ini jika tidak, saya masih mendapatkan kesalahan.
Untuk sistem yang menjalankan systemd alih-alih InitV lakukan hal berikut:
Edit file /usr/lib/systemd/system/mysqld.service
Tambahkan 2 baris ini di akhir:LimitNOFILE=65535
LimitNPROC=65535
Mulai ulang server Mysql dan uji lagiservice mysql restart
mysql -p -u root
mysql>> SHOW VARIABLES LIKE 'open%';
Hasil yang diharapkan:+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 65535 |
+------------------+-------+
1 row in set (0.00 sec)
Kesalahan ini seharusnya tidak muncul lagi.