2016-01-08 458 views
1

我搜索了關於主題主題和測試選項,但我仍然無法增加我的mariadb服務器上的打開文件限制,該服務器用作遠程數據庫服務器的cPanel/whm服務器。 這裏是S良好參考 http://duntuk.com/how-raise-ulimit-open-files-and-mysql-openfileslimit無法增加mariadb 10中的開放文件限制centos7

我在

/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 虛擬存儲器(千字節,-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 

and still in mysql我得到

顯示全局變量,如'open%';

+ ------------------ + ------- +

|變量名|值|

+ ------------------ + ------- +

| open_files_limit | 1024 |

+ ------------------ + ------- +

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:7) 

回答

1

終於我找到解決方案,但沒有任何合理的原因! 我正在運行MariaDB 5.5,並且所有的設置都很好,但軟限制沒有超過1024! 我在想我的MariaDB的是10.0,我剛

安裝它後,我發現,它的5.5我試圖把它升級到10.0版!然後BOOM!沒有任何多餘的動作或設定解決的問題(內核設置允許的最大文件限制爲參考鏈接描述)

我希望它能幫助其他人有同樣的問題(但嘗試所有其他必要的設置後)

2

的啓動日誌,這是操作系統的問題。

我認爲你必須增加「硬限制」在/etc/security/limits.conf,是這樣的:

* hard nofile 65536 
* soft nofile 16384 

然後使用ulimit增加「軟限制」。

+0

您好,感謝它aleary增加'code'cat的/ etc/security/limits中。 CONF 'code'mysql軟NOFILE 65535 'code'mysql硬NOFILE 65535 'code' *軟NPROC 65535 'code' *硬NPROC 65535 'code' *軟NOFILE 65535 'code' *硬NOFILE 65535 'code'但問題是sti ll there –

+0

你是否改變了'ulimit'?檢查SHOW VARIABLES LIKE'table%'; –

+0

這是從ulimit輸出的;現在讓我們在重新啓動mariadb服務器之後看到新的'SHOW'。 –

0

你可以看到在mariadb官方指令。服務檔案;

[[email protected] system]# cat /usr/lib/systemd/system/mariadb.service | grep exam -A 5 
# For example, if you want to increase mariadb's open-files-limit to 10000, 
# you need to increase systemd's LimitNOFILE setting, so create a file named 
# "/etc/systemd/system/mariadb.service.d/limits.conf" containing: 
#  [Service] 
#  LimitNOFILE=10000 

雖然我認爲這應該在official manual寫...

2

RH/CentOS的MariaDB的整合是安靜的混亂,在一些地方MariaDB的正如其名,mysqld的其他地方...
你應編輯(或創建)在 /etc/systemd/system/mariadb.service.d/ 一個.conf文件對於如:/etc/systemd/system/mariadb.service.d/centreon.conf

然後編輯爲kujiy建議

[Service] 
LimitNOFILE=320000 

不要忘了重裝systemd服務文件:

# systemctl daemon-reload

塞德里克

0

我有CentOS的7.3與official repo安裝MariaDB的10.0.29。

出於某種原因,systemd單元被命名爲mysql,我不得不創建/etc/systemd/system/mysql.service.d/oioki.conf

[Service] 
LimitNOFILE=500000 

不要忘了運行後systemctl daemon-reload

0

我不得不運行RedHat企業版Linux 7.2軟件集合(SCL)和SystemD

rh-mariadb100-mariadb-server-10.0.20-1.el7.x86_64 

在我的情況下,硬性限制是好的,但被困在1024

摘要軟限制這個問題新老

old : RHEL6.x : MySQL : init.d : mysql_safe : 'root', mysqld : 'mysql' 
new : RHEL7.x : MariaDB : SystemD : mysql_safe : 'mysql', mysqld 'mysql' 

注意老initl.d包裝腳本以root身份運行,但新SystemD包裝腳本運行爲「mysql的」。這可能會導致mysql_safe無法調用ulimit。在我的情況下,在SystemD中設置LimitNOFILE並沒有幫助 - 它所做的只是增加了包裝器的文件限制,而不是守護進程本身。 我發現了一個兩步過程中得到它的工作

第1步 - 復​​權的mysqld_safe的部分conf文件,使mysql_safe會讀它

sudo vi /etc/opt/rh/rh-mariadb100/my.cnf.d/mariadb-server.cnf 
[mysqld_safe] 
open_files_limit=2048 

第2步 - 創建一個SystemD插入式以root身份啓動包裝(守護進程仍然以'mysql'運行)。請注意LimitNOFILE已被註釋掉。

/etc/systemd/system 
mkdir rh-mariadb100-mariadb.service.d 
cd rh-mariadb100-mariadb.service.d 
vi limits.conf 
[Service] 
#LimitNOFILE=2048 
User= 
Group= 

刷新SystemD服務文件

systemctl daemon-reload 

現在重新啓動該服務,檢查open_files_limit價值的MySQL客戶端 現在應該說2048(新軟限制)

正確的解決辦法可能是擺脫包裝和使用本機的SystemD。

UPDATE 它看起來像這樣被固定在較新的版本,它不再使用mysql_safe包裝

rh-mariadb101-mariadb-10.1.19-6.el7.x86_64