CentOS 7上MariaDB 5.5.60配置open_files_limit不生效问题求助
问题原因
CentOS 7 采用 systemd 管理系统服务,服务进程的资源限制优先级高于 MariaDB 配置文件中的参数设置:
- 默认的 mariadb systemd 服务配置中
LimitNOFILE参数默认值为1024,该参数限制了mariadb进程最大可打开的文件描述符数量,即便你在my.cnf或server.cnf中配置了更高的open_files_limit,也会被systemd的上限封顶,最终生效值只能是1024。 - max_connections参数不受systemd默认资源限制的直接影响,所以你的配置可以正常生效。
解决步骤
- 新建systemd服务的drop-in配置目录,避免直接修改原生服务文件导致升级后配置被覆盖:
mkdir -p /etc/systemd/system/mariadb.service.d/
- 在上述目录中新建
limits.conf配置文件,写入以下内容调整文件描述符限制:
[Service] LimitNOFILE=10240
- 重载systemd配置使修改生效:
systemctl daemon-reload
- 重启MariaDB服务:
systemctl restart mariadb
- 验证配置是否生效,登录MariaDB执行以下SQL即可看到配置已生效:
SHOW VARIABLES LIKE 'open_files_limit';
注意事项
open_files_limit最终生效值为systemd的LimitNOFILE、MariaDB配置文件中open_files_limit两个参数的较小值,后续如果需要调整到更大的数值,需要同时修改两处配置保证匹配。
内容的提问来源于stack exchange,提问作者Sasha
相关产品推荐
相关产品推荐

