2014-03-19 32 views
8

我有mysql版本。 5.1.49-3,我正在研究linux debian。我想開檔,限制設置爲65535。所以,我編輯在/ etc/mysql /下無法將MySQL的開放文件限制從1024限制到65535

[mysqld] 
open_files_limit = 65535 
[mysqld_safe] 
open_files_limit = 65535 

然後在/etc/security/limit.conf

* soft nofile 100000 
* hard nofile 200000 

TE的my.cnf重新啓動mysql服務後,當我在linux

ps -ef|grep mysql 

我得到了65535運行此命令,當我登錄到MySQL作爲根和獲取價值的開放式文件限制

show global variables like "%open_files_limit%"; 

我得到了1024.請幫忙。

+0

是您操作系統的最大限制爲1024(可能是用戶被限制)?爲mysql設置不會改變這一點。 – DavidLin

+0

您可以請提供有關如何從操作系統檢查限制的步驟嗎? – Joey

+0

我可以確認以下工作: https://dba.stackexchange.com/questions/86987/mysql-open-files-limit-cannot-change-this-variable/86988#86988?newreg=71bfff05b6284cb4be6b5b5cdb6c7f45 – mistige

回答

1

所有我需要的是加入這一行/etc/pam.d/common-session: session required pam_limits.so

然後重新啓動Apache

+0

我在這裏沒有看到與apache的連接...你是否打算說「重新啓動MySQL服務器」? – glglgl

1

舊版本的MySQL的問題需要您在my.cnf中使用open-files-limit(破折號不下)。見http://bugs.mysql.com/bug.php?id=40368

+0

是的,已經做到了。我改變了open_files_limit來打開文件限制,但沒有任何反應。它仍然給我1024 – Joey

+0

你是否已經改變它在mysqld和mysqld_safe部分都使用open-files-limit? – lreeder

+0

是的,我在mysqld和mysqld_safe上都修改了它 – Joey

0

ulimit -a表演。 ulimit -n NUMBER可以換到YOUR_NUMEBR open files

0

看一看的official documentation

「運行時此變量的值是系統允許的實際值,可能與您在服務器啓動時指定的值不同。」

9

如果MySQL開始systemd,該設置是非常重要的:

在文件/lib/systemd/system/mysql.service你必須在年底[Service]中添加該2行:

LimitNOFILE = infinity 
LimitMEMLOCK = infinity 

在此之後重新啓動systemctl和mysql:

systemctl daemon-reload 
/etc/init.d/mysql restart 

要檢查配置是否有效您可以從運行的mysql進程中獲取參數,如下所示:

cat /proc/$(pgrep mysqld$)/limits | grep files 
+0

正是我需要的。這是正確的答案。 –