GNU/Linux >> Belajar Linux >  >> Linux

Menyelesaikan kesalahan Mysql:Terlalu banyak file yang terbuka

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 lagi
service 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.


Linux
  1. Memulai udev:udevd inotify_init gagal:terlalu banyak file yang terbuka

  2. Mengapa git gagal saat Push/fetch dengan Terlalu banyak file terbuka

  3. bash:/bin/tar:Daftar argumen terlalu panjang saat mengompresi banyak file dengan tar

  1. Bagaimana cara mengatur file terbuka nginx max?

  2. s3cmd gagal berkali-kali

  3. Terlalu banyak file yang terbuka (CentOS7) - sudah mencoba menetapkan batas yang lebih tinggi

  1. Impor Beberapa File SQL Di MySQL

  2. Terlalu banyak level tautan simbolik

  3. Terlalu banyak file yang terbuka di Debian