最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL啟動錯誤解決方法

 更新時間:2016年12月04日 16:05:03   作者:yayun  
本文給大家分享的是mysql啟動時報錯的排查過程及方法,非常實用,有相同問題的小伙伴可以來參考下

一般情況下mysql的啟動錯誤還是很容易排查的,但是今天我們就來說一下不一般的情況。拿到一臺服務(wù)器,安裝完mysql后進行啟動,啟動錯誤如下:

有同學(xué)會說,哥們兒你是不是buffer pool設(shè)置太大了,設(shè)置了96G內(nèi)存。這明顯提示無法分配內(nèi)存嘛。如果真是這樣也就不在這里進行分享了,哈哈。

我的服務(wù)器內(nèi)存是128G。如下圖:

服務(wù)器內(nèi)存使用情況:

那么問題來了,既然還剩如此多的內(nèi)存,為什么提示無法分配內(nèi)存??。各位童鞋怎么看?

1. 首先想到會不會是有幾條內(nèi)存壞了?于是運維的同學(xué)進行了檢查,給我的反饋是硬件一切正常。

2. 把mysql配置參數(shù)又檢查了一遍,沒有發(fā)現(xiàn)什么問題,線上一直就是使用這些參數(shù)。

3. 又把文件拷貝到另外一臺機器,,另外一臺服務(wù)器可以正常啟動(2臺機器硬件配置一致)。

那么如果排除硬件問題,mysql配置問題,那么剩下的就只有操作系統(tǒng)的內(nèi)核參數(shù)配置了。于是把兩臺服務(wù)器進行了對比,最終發(fā)現(xiàn)了一個內(nèi)核參數(shù)不一致。

復(fù)制代碼 代碼如下:
vm.overcommit_memory

mysql啟動正常的服務(wù)器改參數(shù)的值是0,而mysql啟動錯誤的這臺服務(wù)器該值是2。

那么問題來了,這個參數(shù)到底是什么鬼?竟然會讓mysql分配內(nèi)存失敗,最后導(dǎo)致無法啟動。經(jīng)過查詢資料知道了vm.overcommit_memory是什么鬼。

vm.overcommit_memory

默認值為:0
從內(nèi)核文檔里得知,該參數(shù)有三個值,分別是:
0:當用戶空間請求更多的的內(nèi)存時,內(nèi)核嘗試估算出剩余可用的內(nèi)存。
1:當設(shè)這個參數(shù)值為1時,內(nèi)核允許超量使用內(nèi)存直到用完為止,主要用于科學(xué)計算.
2:當設(shè)這個參數(shù)值為2時,內(nèi)核會使用一個決不過量使用內(nèi)存的算法,即系統(tǒng)整個內(nèi)存地址空間不能超過swap+50%的RAM值,50%參數(shù)的設(shè)定是在overcommit_ratio中設(shè)定。


vm.overcommit_ratio
默認值為:50


這個參數(shù)值只有在vm.overcommit_memory=2的情況下,這個參數(shù)才會生效。

那么我們來看一下總的內(nèi)存地址不能超過多少。其實是可以直接查看的。

[root@yayundeng 3306]# cat /proc/meminfo |grep -i commit
CommitLimit:  70144396 kB
Committed_AS:   135196 kB
[root@yayundeng 3306]# 

通過查看可以得知在70G的樣子。那么這個是如何計算的呢?這個就是上面提到的一個公式。swap+50%的RAM值,50%參數(shù)的設(shè)定是在overcommit_ratio中設(shè)定。

總虛擬內(nèi)存 = 可用物理內(nèi)存 × 百分比 + 交換分區(qū)

[root@yayundeng 3306]# cat /proc/meminfo | grep MemTotal
MemTotal:    132096808 kB
[root@yayundeng 3306]# 
[root@yayundeng 3306]# free -k
       total    used    free   shared  buffers   cached
Mem:   132096808  1583944 130512864     0   10240   133220
-/+ buffers/cache:  1440484 130656324
Swap:   4095992     0  4095992
[root@yayundeng 3306]# cat /proc/sys/vm/overcommit_ratio 
50
[root@yayundeng 3306]# 

總虛擬內(nèi)存=132096808 * 50% + 4095992= 70144396 kB

那么最后的結(jié)果就是buffer pool不能超過70144396 kB - 135196 kB=70009200 KB=66G。實際上經(jīng)過測試,buffer pool只能設(shè)置57G。

最后在看看總虛擬內(nèi)存情況:

CommitLimit:最大可用虛擬內(nèi)存

Committed_AS:已使用虛擬內(nèi)存

[root@yayundeng 3306]# cat /proc/meminfo |grep -i commit
CommitLimit:  70144396 kB
Committed_AS:  65539208 kB

那么如果把內(nèi)核參數(shù)vm.overcommit_memory恢復(fù)為默認值0,那么將不會受到約束。

復(fù)制代碼 代碼如下:
echo 0 > /proc/sys/vm/overcommit_memory

 參考資料:

http://serverfault.com/questions/606185/how-does-vm-overcommit-memory-work
http://linuxperf.com/?p=102 

 總結(jié):

說了這么多,那么為什么要修改內(nèi)核參數(shù)vm.overcommit_memory的值呢?這個是因為這臺服務(wù)器之前跑過GreenPlum數(shù)據(jù)庫,拿到我手上的時候沒有進行重裝系統(tǒng),那么還是建議如果拿到的機器之前跑過其他的業(yè)務(wù),那么保險的方法還是重裝一下系統(tǒng),然后再部署自己的業(yè)務(wù),不然真的會出現(xiàn)莫名其妙的問題。

相關(guān)文章

  • 詳解MySQL的字段默認null對唯一索引的影響

    詳解MySQL的字段默認null對唯一索引的影響

    這篇文章主要為大家介紹了MySQL的字段默認null對唯一索引的影響詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Mysql表的約束超詳細講解

    Mysql表的約束超詳細講解

    MySQL唯一約束(Unique Key)是指所有記錄中字段的值不能重復(fù)出現(xiàn)。例如,為 id 字段加上唯一性約束后,每條記錄的 id 值都是唯一的,不能出現(xiàn)重復(fù)的情況
    2022-09-09
  • mysql中insert并發(fā)問題(on?DUPLICATE?KEY?UPDATE)

    mysql中insert并發(fā)問題(on?DUPLICATE?KEY?UPDATE)

    本文主要介紹了mysql中insert并發(fā)問題(on?DUPLICATE?KEY?UPDATE),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 使用mysql的disctinct group by查詢不重復(fù)記錄

    使用mysql的disctinct group by查詢不重復(fù)記錄

    非常不錯的方法,用mysql的group by解決不重復(fù)記錄的問題,看來我需要學(xué)習(xí)的地方太多了
    2008-08-08
  • mysql 列轉(zhuǎn)行,合并字段的方法(必看)

    mysql 列轉(zhuǎn)行,合并字段的方法(必看)

    下面小編就為大家?guī)硪黄猰ysql 列轉(zhuǎn)行,合并字段的方法(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • mysql執(zhí)行腳本導(dǎo)入表和數(shù)據(jù)后中文注釋亂碼的問題解決

    mysql執(zhí)行腳本導(dǎo)入表和數(shù)據(jù)后中文注釋亂碼的問題解決

    本人在使用不同版本下進行操作時,就會出現(xiàn)中文亂碼的問題,,例如我本地安裝mysql8,服務(wù)器安裝的是mysql5,然后本地連接服務(wù)器的mysql后,執(zhí)行SQL腳本之后發(fā)現(xiàn)中文全部亂碼,所以本文介紹了mysql執(zhí)行腳本導(dǎo)入表和數(shù)據(jù)后中文注釋亂碼的問題解決,需要的朋友可以參考下
    2024-04-04
  • 如何解決MYSQL8.4.1 MySQL84--ERROR 1524(HY000):Plugin ‘msql_native_password‘ is not loaded問題

    如何解決MYSQL8.4.1 MySQL84--ERROR 1524(HY000):Plugin&n

    這篇文章主要介紹了如何解決MYSQL8.4.1 MySQL84--ERROR 1524(HY000):Plugin ‘msql_native_password‘ is not loaded問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • MySQL服務(wù)器連接過程淺析

    MySQL服務(wù)器連接過程淺析

    這篇文章主要介紹了MySQL服務(wù)器連接過程淺析,本文從源碼分析了MySQL服務(wù)器的連接過程,需要的朋友可以參考下
    2015-03-03
  • mysql 8.0.21免安裝版配置方法圖文教程

    mysql 8.0.21免安裝版配置方法圖文教程

    這篇文章主要為大家詳細介紹了mysql 8.0.21免安裝版配置教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • mysql創(chuàng)建觸發(fā)器時報1064錯誤問題及解決

    mysql創(chuàng)建觸發(fā)器時報1064錯誤問題及解決

    這篇文章主要介紹了mysql創(chuàng)建觸發(fā)器時報1064錯誤問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論

玛纳斯县| 辉南县| 平阴县| 阿拉善右旗| 武夷山市| 合作市| 鄢陵县| 仁布县| 嘉鱼县| 改则县| 清水县| 景德镇市| 漯河市| 梁河县| 东光县| 依兰县| 三明市| 友谊县| 台北市| 灵丘县| 甘孜| 长岛县| 肥乡县| 应用必备| 甘南县| 嘉黎县| 越西县| 辰溪县| 东阿县| 依兰县| 剑阁县| 团风县| 肃南| 浦江县| 仁怀市| 靖西县| 韶山市| 嘉善县| 旺苍县| 卓尼县| 滦南县|