小編的網站是架在AWS上,用的是最低階的;對資料庫的存取很頻繁所以常常會掛掉(通常是有人在爬我的網站時),每次都要登入遠端重啟好麻煩,就上網爬文一下果然有找到相關的程式,就選一個寫的最簡單的來實作。
先新增restart_mysql.sh檔,輸入以下文字
[php]
#!/bin/sh
pidof mysqld >/dev/null
if [ $? -eq 0 ]
then
echo "At `date` Mysql Server is running." >> /home/mysql_log
else
echo "At `date` Mysql Server was stopped." >> /home/mysql_log
sudo service mysql start
fi
[/php]
程式碼說明:
#!/bin/sh 使用shell script
pidof 是查詢程式的pid 這邊就是先查詢mysql的pid
if [ $? -eq 0 ] $?表示上一個指令回傳結果 通常 0表示正常執行, 1 就表示mysql服務已停止
then 然後就
echo “At `date` Mysql Server is running.” >> /home/mysql_log 輸出 mysql 服務正在執行中 寫入 log檔
else 不然就
echo “At `date` Mysql Server was stopped.” >> /home/mysql_log 輸出 mysql 服務已停止 寫入 log
sudo service mysql start 使用root權限 重新啟動 mysql
fi 條件式結尾
寫完後先執行測試一下看有沒有正確執行
先看一下目前的mysql是否有進程id
指令:pidof mysqld 顯示結果會是一串數字 ex 960
然後停用mysql
指令:service mysql stop
再將 restart_mysql.sh 變更權限 (這一步是為了讓排程可以執行)
指令:chmod 777 restart_mysql.sh
在下指令測試一下
指令:sh restart_mysql.sh
如果正確執行 mysql_log檔會顯示 At 年月日 Mysql Server was stopped.
然後mysql會被重新啟動
最後就將上面的程式加入排程
指令:crontab -e
加入下面這行 (每五分鐘判斷mysql執行狀態)
*/5 * * * * sh /home/restart_mysql.sh
參考資料:
https://www.bennythink.com/cron-mysql-autorestart.html
[ MySql ] – MySql 停止後 自動重啟
評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 0,平均評等: 0]
評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 0,平均評等: 0]