mysql - 找不到 mysql 进程的最大打开文件数(ulimit)的来源

标签 mysql rhel init.d

我被委派管理 MySQL 服务器(RHEL 7),现在我遇到了一个奇怪的情况。 RPM 包来自 Oracle,它使用 init.d 脚本而不是 systemd。如果我检查正在运行的 MySQL-Server-Process 的限制,我会得到 5000。让我向您展示我是如何检查的:

ps -ef | grep mysql | grep -v grep
root     17184     1  0  2018 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/db/data1 --pid-file=/var/run/mysqld/mysqld.pid
mysql    17902 17184  0  2018 ?        01:14:22 /usr/sbin/mysqld --basedir=/usr --datadir=/db/data1 --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysql/mysqld.err --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306

cat /proc/17902/limits 
Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        0                    unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             15066                15066                processes 
Max open files            5000                 5000                 files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       15066                15066                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us  

如您所见,“最大打开文件”硬限制和软限制设置为 5000。我的问题是:这个值在哪里设置? 我已经检查了以下文件:

  • /etc/security/limits.conf => 该文件为空,除了一些注释
  • /etc/security/limits.d/20-nproc.conf => 这是limits.d 下唯一的文件。内容:

    *          soft    nproc     4096
    root       soft    nproc     unlimited
    
  • ulimit -n 作为 root:1024

  • ulimit -n 作为用户 mysql:1024

  • /etc/my.cnf 不包含 max_open_files 值

  • /etc/my.cnf.d 为空

知道这个值在哪里设置吗?

最佳答案

这应该取决于您在/etc/security/limits.conf 中设置的内容,有关更多详细信息,请参见此处 https://unix.stackexchange.com/questions/152186/mysql-max-open-files-more-than-1024 最终考虑添加my.cnf的全部内容

关于mysql - 找不到 mysql 进程的最大打开文件数(ulimit)的来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54457008/

相关文章:

php - 在 Codeigniter 中更新数组查询

mysql - 当插入触发器处于事件状态时,无法将 4 字节 UTF-8 字符/表情符号插入 MySQL 数据库

Linux 在操作系统关闭期间调用自定义脚本

hadoop - Apache Hadoop 版本 1.0.3 使用哪些端口进行守护进程的集群内通信

centos - 使用 init.d 脚本在一台服务器中启动多个 tomcat 实例

MySQL:如果不存在则插入到一个表中;如果是,则将其删除并将其插入到另一个表中

mysql - 错误 #1241 在 Mysql Workbench 中操作数应包含 1 列

linux - 用于日志过滤的 RSYSLOG 自定义配置

python - Init.d 脚本无法执行 Python 脚本

linux - debian init.d 脚本在重启后不运行