GNU/Linux >> Linux の 問題 >  >> Linux

Mysqlエラーの解決:開いているファイルが多すぎます

はじめに:
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)

このエラーは表示されなくなります。


Linux
  1. MySQLの接続エラーが多すぎます

  2. udev の起動:udevd inotify_init に失敗しました:開いているファイルが多すぎます

  3. MySQL - エラー 1045 - アクセスが拒否されました

  1. 致命的なエラー:特権テーブルを開いたりロックしたりできません:テーブル 'mysql.host' が存在しません

  2. bash:/bin/tar:tar で多数のファイルを圧縮すると、引数リストが長すぎます

  3. 開いているファイルが多すぎます (CentOS7) - より高い制限を設定しようとしました

  1. Linuxで開くファイルの数の制限を増やす方法

  2. MySQLに複数のSQLファイルをインポートする

  3. Debian で開いているファイルが多すぎる