首先,要确定某些用户或组限制,您必须执行以下操作:
root@ubuntu:~# sudo -u mysql bash
mysql@ubuntu:~$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 71680
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 71680
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
mysql@ubuntu:~$
重要的一行是:
打开文件 (-n) 1024
正如您所看到的,您的操作系统供应商提供的这个版本具有基本的 Linux 配置 - 每个进程 1024 个文件。
这对于繁忙的 MySQL 安装来说显然是不够的。
现在,要解决此问题,您必须修改以下文件:
/etc/security/limits.conf
mysql soft nofile 24000
mysql hard nofile 32000
某些版本的 Linux 还需要额外的配置才能使其坚持守护进程而不是登录会话。例如,在 Ubuntu 10.04 中,您还需要通过添加以下行来设置 pam 会话限制/etc/pam.d/common-session
:
session required pam_limits.so