濮阳杆衣贸易有限公司

主頁 > 知識庫 > 淺談mysql 系統(tǒng)用戶最大文件打開數(shù)限制

淺談mysql 系統(tǒng)用戶最大文件打開數(shù)限制

熱門標(biāo)簽:南昌高頻外呼系統(tǒng)哪家公司做的好 溫州瑞安400電話怎么申請 百度地圖標(biāo)注后不顯示 電銷機器人 行業(yè) 俄國地圖標(biāo)注app 昆明電信400電話辦理 電話機器人市場趨勢 電銷機器人各個細節(jié)介紹 淄博400電話申請

紙上得來終覺淺,絕知此事多宕機...記錄一下自己很蠢的一次故障處理過程。

上周的時候,一個剛上線的系統(tǒng)又開始反映登不上了,因為最近這個系統(tǒng)也老是出現(xiàn)這個問題,開發(fā)也一直在找問題中,所以也沒太在意。于是登上操作系統(tǒng),mysql -uroot -p登錄數(shù)據(jù)庫,然后就一直沒反應(yīng),登不上...

交代一下,mysql是裝在mysql用戶下的,裝的時候雖然對數(shù)據(jù)庫參數(shù)有進行調(diào)優(yōu),但是操作系統(tǒng)層面沒做調(diào)整,所以mysql用戶的最大文件打開數(shù)限制為默認的1024,用ulimit -n可以查詢。然后我在用mysql的root賬號登錄數(shù)據(jù)庫的時候也是在mysql這個系統(tǒng)用戶下登錄的,然后看了下當(dāng)時服務(wù)器的負載,cpu和內(nèi)存這些都很正常,但是存在大量應(yīng)用到數(shù)據(jù)庫的連接。

到這兒問題應(yīng)該就很清楚了,系統(tǒng)用戶mysql文件打開數(shù)可能達到了最大限制,當(dāng)然不能打開更多的連接。

然而當(dāng)時我并沒有想到這一點,我想到的不是換個系統(tǒng)用戶登錄,不是停掉應(yīng)用,而是重啟數(shù)據(jù)庫。。。而且這個數(shù)據(jù)庫跑的不只這一個業(yè)務(wù),雖然也都不是什么重要的業(yè)務(wù)。。。

于是我就準(zhǔn)備重啟數(shù)據(jù)庫,仍然是在mysql用戶下執(zhí)行mysqladmin -uroot -p shutdown。毫無疑問,這肯定也是沒有反應(yīng)的,道理跟前面root賬號連不上數(shù)據(jù)庫是一樣的,ctrl+C后有以下報錯

^Cmysqladmin: connect to server at 'localhost' failed
error: 'Lost connection to MySQL server at 'waiting for initial communication packet', system error: 4'

然后我就做了個更蠢的操作,雖然想著可能會丟數(shù)據(jù),殺掉了mysql進程。。。然后重啟mysql,系統(tǒng)也就可用了。是真的很蠢,做完之后馬上就想起有多種更好的處理方法,卻選擇了最蠢的一種。

今天再登上數(shù)據(jù)庫看的時候,發(fā)現(xiàn)有幾個參數(shù)跟我配置文件里寫的不一樣,比如max_connections、table_open_cache等,都是設(shè)置的默認值,看了下上次啟動日志,確實也有告警

2019-03-15T08:14:03.038750Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 12010)
2019-03-15T08:14:03.038911Z 0 [Warning] Changed limits: max_connections: 214 (requested 2000)
2019-03-15T08:14:03.038916Z 0 [Warning] Changed limits: table_open_cache: 400 (requested 5000)

很明顯,mysql根據(jù)參數(shù)設(shè)置計算了實例需要打開的最大文件數(shù)超過了當(dāng)前系統(tǒng)用戶的最大限制,于是沒有使用該參數(shù)而使用了默認值。當(dāng)然啟動起來數(shù)據(jù)庫也是可用的,啟起來后也可以手動把設(shè)置參數(shù)

set global max_connections=2000;
set global table_open_cache=5000;

只不過就很有可能出現(xiàn)我之前出現(xiàn)的問題了,也就是數(shù)據(jù)庫連接數(shù)并沒有達到max_connections的限制,用戶仍然連接不上。需要說明的是,正常情況下就算連接數(shù)滿了,mysql仍然會為root用戶保留一個連接,也就是root用戶是可以登錄數(shù)據(jù)庫查看問題的。

要解決也很簡單,增大操作系統(tǒng)用戶mysql的限制值就行了,在配置文件/etc/security/limits.conf后面加上新的限制值就行了。

mysql  soft  nofile 32768
mysql  hard  nofile 65535

以上所述是小編給大家介紹的mysql 系統(tǒng)用戶最大文件打開數(shù)限制詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • MySQL數(shù)據(jù)庫大小寫敏感的問題
  • python使用adbapi實現(xiàn)MySQL數(shù)據(jù)庫的異步存儲
  • MySQL可重復(fù)讀級別能夠解決幻讀嗎
  • MySQL不同表之前的字段復(fù)制
  • MySQL優(yōu)化方案參考
  • MySQL索引類型Normal、Unique和Full Text的講解
  • MySQL分庫分表總結(jié)講解
  • MySQL數(shù)據(jù)庫存儲過程和事務(wù)的區(qū)別講解
  • MySQL Limit性能優(yōu)化及分頁數(shù)據(jù)性能優(yōu)化詳解
  • Mysql查看最大連接數(shù)和修改最大連接數(shù)的講解

標(biāo)簽:拉薩 吐魯番 嘉峪關(guān) 葫蘆島 安徽 甘南 洛陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺談mysql 系統(tǒng)用戶最大文件打開數(shù)限制》,本文關(guān)鍵詞  淺談,mysql,系統(tǒng),用戶,最大,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺談mysql 系統(tǒng)用戶最大文件打開數(shù)限制》相關(guān)的同類信息!
  • 本頁收集關(guān)于淺談mysql 系統(tǒng)用戶最大文件打開數(shù)限制的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    阳原县| 巴彦县| 阳曲县| 大名县| 扎兰屯市| 萍乡市| 辽中县| 安岳县| 竹山县| 江山市| 洱源县| 苏州市| 商南县| 土默特右旗| 昌乐县| 皮山县| 周宁县| 松阳县| 大荔县| 吉木乃县| 江华| 江源县| 临洮县| 曲水县| 灵川县| 大足县| 浦东新区| 石柱| 即墨市| 黑龙江省| 绥江县| 溧水县| 碌曲县| 肥东县| 彝良县| 肇源县| 甘孜县| 堆龙德庆县| 广安市| 和林格尔县| 岳西县|