はじめに:
Mysql 5.5から5.6にアップグレードすると、突然一部のサイトで次のエラーが表示されました。...... Too many open files
この問題は、最大1024ファイルを開くためにシステムとPAMシステムに与えられている現在の制限に関係しています。いくつかの調査を行った後、私はここの下にドイツ語であるこのサイトを見つけました。そこでは次のことが説明されています:
https://www.filewalker.de/ulimit-mysql-open_files_limit/
手順:
ファイルを確認します-制限を開くか、mysqlサーバーを実行します:
mysql -p -u root
mysql> SHOW VARIABLES LIKE 'open%';
非常に可能な出力:
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 1024 |
+------------------+-------+
1 row in set (0.00 sec)
これは、Mysqlサーバーが最大1024を開くようになることを意味します。これは、Mysql5.6には少なすぎるようです。
この制限を引き上げる
ファイルを編集します/etc/security/limits.conf 次の行を追加します。mysql hard nofile 65535
mysql soft nofile 65535
これにより、ユーザー mysqlのオープンファイルの制限が65535に引き上げられます。
すべてのユーザーのこの制限を引き上げる場合は、 mysqlという単語を置き換えてください *の場合
eg。* hard nofile 65535
* soft nofile 65535
そして、このサイトに従って、ファイルを編集します /etc/pam.d/common-session 最後に次の行を追加します:session required pam_limits.so
注: ただし、この手順が本当に必要かどうかはわかりません。何人かの人々はそれなしで試みました、そしてそれはまた働きました。私にとって、Debian Wheezyでは、これを行わなければなりませんでした。そうしないと、まだエラーが発生していました。
InitVの代わりにsystemdを実行するシステムの場合、次の手順を実行します。
ファイル/usr/lib/systemd/system/mysqld.serviceを編集します
最後に次の2行を追加します:
LimitNOFILE=65535
LimitNPROC=65535
Mysqlサーバーを再起動して再度テストしますservice mysql restart
mysql -p -u root
mysql>> SHOW VARIABLES LIKE 'open%';
期待される出力:
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | 65535 |
+------------------+-------+
1 row in set (0.00 sec)
このエラーは表示されなくなります。