1、由于自己建了一個網(wǎng)站横腿,mysql服務(wù)器經(jīng)常自動死掉颓屑,導(dǎo)致網(wǎng)站上不去斤寂,所以,我需要每次都手動重啟mysql服務(wù)揪惦,感覺很不爽遍搞。所以決定寫一個shell腳本解決這個問題。
要解決這個mysql無規(guī)律自動停掉的問題器腋,首先給服務(wù)器加個定時執(zhí)行任務(wù)溪猿,每分鐘去檢測一下數(shù)據(jù)庫服務(wù)的運行狀態(tài),要是down 掉了纫塌,就立馬啟動起來诊县。
第一步,添加定時任務(wù)措左,使用crontab依痊。
crontab -e
初次使用時,會讓你選擇編輯器怎披,千萬不要選nano胸嘁,完全不知道怎么操作,我選了vim basic凉逛。
如果你已經(jīng)是選了nano性宏,如果想切到vim,可以通過以下操作切換:
方案一:
export EDITOR=vim && crontab -e
通過此命令便可使用vim編輯器打開
方案二:
select-editor
然后輸入數(shù)字鱼炒,選擇想要的編輯器
打開crontab后衔沼,添加一行*/1 * * * * /usr/local/runmysql.sh
具體crontab語法:
* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
一個標(biāo)準(zhǔn)的 crontab 配置需要符合如下:
分 時 日 月 星期 要運行的命令
第二步蝌借,編寫shell執(zhí)行文件昔瞧,代碼如下:
#!/bin/bash
pgrep -x mysqld >& /dev/null
if [ $? -ne 0 ]
then
echo “At time: `date` :MySQL is stop .”>> /var/log/test
/etc/init.d/mysql start
else
echo “MySQL server is running .”
fi
這里要注意,不能用
service mysqld/mysql start
命令來啟動菩佑,會導(dǎo)致mysql啟動不了自晰,應(yīng)使用絕對路徑,
/etc/init.d/mysql start
來啟動稍坯。
另外酬荞,也可以不寫入日志。刪掉>> /var/log/test即可
可以自己先手動執(zhí)行腳本瞧哟,看看能不能執(zhí)行成功混巧。
cd到runmysql.sh目錄 /usr/local/
執(zhí)行./runmysql.sh #執(zhí)行腳本,提示Permission denied
chmod 755 runmysql.sh
chmod +x ./runmysql.sh #使腳本具有執(zhí)行權(quán)限
./runmysql.sh #執(zhí)行腳本
提示mysql is running
service mysqld stop把mysql停掉勤揩。
執(zhí)行./runmysql.sh咧党,提示mysql已啟動
完美解決問題