Ubuntuはバージョン15.04でUpstartからSystemdに移行し、システムサービスの/etc/security/limits.confの制限を尊重しなくなりました。これらの制限は、ユーザーセッションにのみ適用されるようになりました。
MySQLサービスの制限は、Systemd構成ファイルで定義されています。このファイルは、デフォルトの場所から/ etc / systemdにコピーしてから、コピーを編集する必要があります。
sudo cp /lib/systemd/system/mysql.service /etc/systemd/system/
sudo vim /etc/systemd/system/mysql.service # or your editor of choice
ファイルの最後に次の行を追加します。
LimitNOFILE=infinity
LimitMEMLOCK=infinity
LimitNOFILE=4510
などの数値制限を設定することもできます。 。
次に、Systemd構成を次のようにリロードします:
sudo systemctl daemon-reload
MySQLを再起動すると、max_connectionsディレクティブに従うはずです。
15.04にアップグレードした後、MySQLを正常に停止することにも問題がありました。これが影響する場合(service mysql stop
を実行するとタイムアウトになるまで300秒かかるため、わかります またはservice mysql restart
)次に、同じ/etc/systemd/system/mysql.serviceファイルに次の行を追加すると修正されました:
ExecStop=/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf shutdown
この後者の問題は16.04で修正されたようで、この行は不要になったため、ディストリビューションのアップグレードを行う前に、MySQLを停止してExecStop
を削除する必要があります。 構成ファイルからの行。