我搜索了主题主题并测试了选项,但我仍然无法增加我的mariadb服务器上的打开文件限制,该服务器被用作cpanel/whm服务器的远程数据库服务器。
我把它增加了
/etc/my.cnf
open-files-limit=65550
这里是一些结果
# 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) 63471
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65535
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
最大用户进程数(-u)65535虚拟内存(KB,-v)无限制文件锁定数(-x)无限制
# ulimit -Hn -Sn
open files (-n) 65535
open files (-n) 65535
cat /etc/systemd/system/mariadb.service.d/limits.conf
[Service]
LimitNOFILE=65500
cat /usr/lib/systemd/system/mariadb.service
[Unit]
Description=MariaDB database server
After=syslog.target
After=network.target
[Service]
Type=simple
User=mysql
Group=mysql
LimitNOFILE=infinity
LimitMEMLOCK=infinity
但在mysql中我仍然得到
显示全局变量,如“open %”;
+-————————————————-+-—————-+
| 变量名称(_N)|数值|
+-————————————————-+-—————-+
| 打开文件限制|小行星10|
+-————————————————-+-—————-+
一组中的1行(0.00秒)
和im得到以下错误后,重新启动一遍又一遍
60108 16:30:02 [ERROR] mysqld: Can't open file: './username_wp/wp_users.frm' (errno: 24)
160108 16:30:02 [ERROR] Error in accept: Too many open files
160108 16:30:04 [ERROR] Error in accept: Too many open files
160108 16:30:06 [ERROR] Error in accept: Too many open files
160108 16:30:11 [ERROR] mysqld: Can't open file: './username_db/strikes.frm' (errno: 24)
这是mariadb的启动日志
[Warning] Could not increase number of max_open_files to more than 1024 (request: 132107)
9条答案
按热度按时间vxbzzdmp1#
RH/CentOS mariadb集成是安静的混乱,在一些地方使用mariadb作为它的名字,mysqld在其他地方...
您应该在/etc/systemd/system/mariadb.service.d/中编辑(或创建)一个.conf文件,例如:/etc/系统管理员/系统管理员/系统管理员/系统管理员
然后按照kujiy的建议编辑它
不要忘记重新加载systemd服务文件:
# systemctl daemon-reload
塞德里克
tct7dpnv2#
这是操作系统问题。
我认为您必须增加
/etc/security/limits.conf
中的“硬限制”,如下所示:则使用
ulimit
来增加“软限制”。mpgws1up3#
最后,我找到了解决方案,但没有任何合理的原因!我正在运行MariaDB 5. 5和所有设置的地方罚款,但软限制没有超过1024!我想我的mariadb是10. 0,因为我刚安装它
在我发现它的5. 5之后,我试图将它升级到v10. 0!然后砰的一声!问题解决了,没有任何额外的操作或设置(内核设置允许最大文件限制,如参考链接中所述)
我希望它能帮助其他有同样问题的人(但在尝试所有其他所需的设置后)
uttx8gqw4#
您可以在mariadb.service文件中看到官方说明;
虽然我认为这应该写在官方手册上...
kdfy810k5#
我从official repo安装了带有MariaDB 10.0.29的CentOS 7.3。
出于某种原因,systemd单元被命名为
mysql
,我不得不创建/etc/systemd/system/mysql.service.d/oioki.conf
:不要忘记在此之后运行
systemctl daemon-reload
。rnmwe5a26#
open_files_limit
是取决于下一个参数的动态值:要检查
open_files_limit
的值,请在mysql中运行以下命令:...它将输出:
unhi4e5o7#
我在运行带有软件集合(SCL)和SystemD的RedHat Enterprise Linux 7.2时遇到了这个问题
在我的情况下,硬限制是可以的,但软限制停留在1024
新老总结
请注意,旧的initl.d Package 器脚本以root用户身份运行,而新的SystemD Package 器脚本以'mysql'身份运行。这可能会导致mysql_safe不调用ulimit。在我的例子中,在SystemD中设置LimitNOFILE没有帮助-它所做的只是增加 Package 器的文件限制,而不是守护进程本身。我发现了一个两步的过程来让它工作
步骤1 -将mysqld_safe部分重新插入到conf文件中,以便mysql_safe可以读取它
第2步-创建一个SystemD插件,以root身份启动 Package 器(守护进程仍将以“mysql”身份运行)。注意,LimitNOFILE被注解掉了。
重新加载SystemD服务文件
现在重新启动服务,检查mysql客户端中open_files_limit的值,现在应该显示为2048(新的软限制)
正确的解决方案可能是去掉 Package 器并使用本机SystemD。
UPDATE看起来这个问题在更新的版本中得到了修复,该版本不再使用mysql_safe Package 器
s8vozzvw8#
要在Centos 7上增加MySQL 5.6中的打开文件限制,您必须:
在文件末尾添加:
然后:
完成了!,我假设对于MariaDB来说是一样的
qqrboqgw9#
确保以下位置中不存在其他文件:/etc/systemd/system/mariadb.service.d文件夹可能限制了文件的数量。这是我的情况,有另一个文件正在减少我设置的限制:)