まあ、端的に言うとここに全部書いてあった。
MySQLでToo many connectionsが出た時の対応 http://qiita.com/kenjiszk/items/c3d46ac837845281e62b
% mysql -u root -p
mysql> show variables like "%max_connections%";
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 151 |
+-----------------+-------+
1 row in set (0.01 sec)
設定変えるときは /etc/my.cnf に
[mysqld]と書けばいいっぽいが、Ubuntuだと設定ファイルの階層がちょっと違っていて
max_connections = 1000
/etc/mysql/mysql.conf.d/max_connections.cnf みたいな新規ファイルを作り、
[mysqld]と書くのがよい。
max_connections = 1000
これで終わり・・・・・と思うだろ?
% mysql -u root -p
mysql> show variables like "%max_connections%";
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 214 |
+-----------------+-------+
1 row in set (0.01 sec)
なんだよ、214って。幸いなことに同じことにあたった人がいたのですぐに解決
MySQL Max_connections stuck on 214? https://codepoets.co.uk/2015/mysql-max_connections-stuck-on-214/
Increasing File Descriptors and Open Files Limit CentOS 7 https://naveensnayak.wordpress.com/2015/09/17/increasing-file-descriptors-and-open-files-limit-centos-7/
ようするに process の rlmit が低すぎるので上げてあげればよろしい。
/etc/security/limits.conf を設定するのは Ubuntu 16.04 では動かなくて(そして必要もなくて)
の [Service] セクションに
LimitNOFILE=65535
%
/lib/systemd/*/*.service は上書きしてはいけないらしいです。
systemdで既存のunitを編集する2つの方法 http://qiita.com/nvsofts/items/529e422bb8a326401c39
このへんのページ参照
%
sudo EDITOR=emacs systemctl edit mysql.serviceとかして、設定ファイル編集画面を立ち上げて
[Service]と書いて、セーブ&exit。
LimitNOFILE=65535
おわったら、
% systemctl restart mysqlして、また最初の設定値確認の方法で、ただしく動いていることを確認する。
コメント