Ubuntu 16.04服务器MySql的open_file_limit不会高于65536

我正在XenServer上运行Ubuntu 16.04服务器,我遇到了MySql的打开文件限制的问题。

以下是我迄今为止所做的:

sudo nano /etc/security/limits.conf (参考)

* soft nofile 1024000 * hard nofile 1024000 * soft nproc 102400 * hard nproc 102400 mysql soft nofile 1024000 mysql hard nofile 1024000 

sudo nano /etc/init/mysql.conf (参考)

 limit nofile 1024000 1024000 limit nproc 102400 102400 

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf (参考)

 [mysqld_safe] open_files_limit = 1024000 [mysqld] open_files_limit = 1024000 

当上述不起作用时,我接着说:

sudo nano /etc/sysctl.conf

 fs.file-max = 1024000 

sudo nano /etc/pam.d/common-session

 session required pam_limits.so 

sudo nano /etc/pam.d/common-session-noninteractive

 session required pam_limits.so 

sudo nano /lib/systemd/system/mysql.service

 LimitNOFILE=infinity LimitMEMLOCK=infinity 

当我login到我的用户帐户一切似乎很好:

 ulimit -Hn 1024000 ulimit -Sn 1024000 

如果我以mysql身份login,看起来也不错:

 mysql@server:~$ ulimit -Hn 1024000 mysql@server:~$ ulimit -Sn 1024000 

但是,当我看着proc:

 ps -ef | grep mysql cat /proc/1023/limits | grep open Max open files 65536 65536 files 

或者当我在MySql中查看它时:

 mysql> show global variables like 'open%'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | open_files_limit | 65536 | +------------------+-------+ 

从日志(/var/log/mysql/error.log)中:

2016-07-25T05:44:35.453668Z 0 [Warning]无法将max_open_files的数量增加到65536以上(request:1024000)

我完全没有想法。 在开始的时候,我的确以1024开头的open_files_limit开头,其中一个必须改变它,但是我需要更高一些。 我已经达到了这个限制,因为我有很多数据库和表,有时有很多的分区。

我甚至尝试过比1024000更不积极的数字,没有运气。

有任何想法吗?

这在Ubuntu Xenial 16.04上适用于我:

创builddir /etc/systemd/system/mysql.service.d

放入/etc/systemd/system/mysql.service.d/override.conf

 [Service] LimitNOFILE=1024000 

现在执行

 systemctl daemon-reload systemctl restart mysql.service 

是的, LimitNOFILE=infinity实际上似乎将其设置为65536。

您可以通过以下操作来validation上述内容:

 cat /proc/$(pgrep mysql)/limits | grep files