您現在的位置是:首頁 > 技術教程

mysql老是自動停止怎麼辦?mysql服務自動停止的解決方法

曙光部落格2022-09-02 08:16:08【技術教程】

Mysql老是自動停止怎麼辦?在生產環境中,很多人會經常遇到mysql自動停止的情況,這其中當然也包括mariadb數據庫,究其原因還是內存耗盡,導致數據庫停止工作。主要提示為“can’t connect to local mysql server through socket……”。還有的是這樣提示的“Error establishing a database connection”如下圖所示:

 mysql老是自動停止怎麼辦?mysql服務自動停止的解決方法 技術文檔

服務器上安裝的 MySQL,會出現自動停止的情況。出現這種現像,通常是服務器的內存不足導致的。

具體可以通過服務器日志來進行分析排查:

查看服務器的系統日志 /var/log/messages

看下在 MySQL 自動停止的時間段內,有什麼異常的日志信息,如果日志有提示 Out of memory 就可以判定,是服務器的內存使用不足,導致系統自動殺死的 MySQL 的進程!

我看大部分人的解決辦法幾乎都是這樣的:

service mysqld restart

然而,用這樣的方法確實可以解決問題,但是治標不治本,尤其是想wordPress這樣的程序,消耗內存極其嚴重,你不知道他什麼時候就會自動停止,這樣的解決方法無非就幾個:

1、升級服務器硬件,加大內存。

2、優化程序,減少內存開銷

3、監控mysql進程是否為啟動,如果停止,則自動啟動數據庫

(1)下面貼出代碼:

#!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH pgrep -x mysqld /dev/null if [ $? -ne 0 ] echo At time:$(date) :MySQL is stop . /var/log/mysql_messages service mysqld start fi

(2)或者登陸寶塔面板後台 – 計劃任務。任務類型:Shell腳本 任務名稱:mysql進程守護 執行周期:比如每1分鐘監控執行一次,具體的周期請根據自己服務器實際情況來設置。

 mysql老是自動停止怎麼辦?mysql服務自動停止的解決方法 技術文檔

使用下面的代碼:

pgrep -x mysqld &> /dev/null

if [ $? -ne 0 ];then

bash /www/server/panel/script/rememory.sh

/etc/init.d/mysqld start

fi

把上面的代碼加入到計劃任務,每隔幾分鐘檢測一次,這樣就比較穩妥了。現在用寶塔的人比較多,如果你用的是寶塔,把上面的代碼從“計劃任務”=》“添加計劃任務”,然後填寫你的任務名稱,選擇好時間,最後加入上面的代碼,完工!

文章評論

    共有條評論來說兩句吧...

    用戶名:

    驗證碼:

Interserver Webhosting and VPS
Dynadot
TurnKey Internet
COM for just $5.98 at Namecheap