我有mysql ver。 5.1.49-3,我正在使用linux debian。我试图将open-files-limit设置为65535.所以我在/ etc / mysql /
中编辑了te my.cnf[mysqld]
open_files_limit = 65535
[mysqld_safe]
open_files_limit = 65535
然后在/etc/security/limit.conf
* soft nofile 100000
* hard nofile 200000
重新启动mysql服务后,我在linux中运行此命令
ps -ef|grep mysql
我得到了65535.当我以root身份登录mysql并获取open-files-limit的值
show global variables like "%open_files_limit%";
我得到1024.请帮忙。
答案 0 :(得分:13)
如果使用systemd启动mysql,则此设置很重要:
在文件/lib/systemd/system/mysql.service
中,您必须在最后的[Service]
部分添加以下两行:
LimitNOFILE = infinity
LimitMEMLOCK = infinity
重新启动systemctl和mysql之后:
systemctl daemon-reload
/etc/init.d/mysql restart
要检查配置是否有效,您可以从运行的mysql进程中获取参数,如下所示:
cat /proc/$(pgrep mysqld$)/limits | grep files
答案 1 :(得分:2)
我需要的是将这一行添加到/etc/pam.d/common-session:
session required pam_limits.so
然后重启apache
答案 2 :(得分:1)
旧版MySQL的问题要求您在my.cnf中使用open-files-limit(破折号而不是下划线)。见http://bugs.mysql.com/bug.php?id=40368
答案 3 :(得分:0)
为展示做ulimit -a
。 ulimit -n NUMBER
可以更改为YOUR_NUMEBR open files
答案 4 :(得分:0)
“此变量在运行时的值是系统允许的实际值,可能与您在服务器启动时指定的值不同。”
答案 5 :(得分:0)
在Unbuntu 14.04上奏效了
import re
Test_Str = "2014, 2016, Start ss 233, 2015, 2017, 2019 other stuff 3141"
Test_RE1 = r'(Start[^\d]{1,6}?)(?:(\d{1,4},?\s*)+)'
Test_RE2 = r'(Start[^\d]{1,6}?)(?:(\d{1,4},?\s*)*)'
match1 = re.search(Test_RE1, Test_Str)
print match1.group(0) # Start ss 233, 2015, 2017, 2019
# This is the desired match
match2 = re.search(Test_RE2, Test_Str)
print match2.group(0) # Start
# This fails to match any repetitions of the 'digit group'
在此之后,只需重新启动mysql
vim /etc/mysql/my.cnf
[mysqld]
open-files-limit=16000