小編的網站是架在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]
Xilla 露營 戶外 大力夾雲台手機支架 拓展支架 球型雲台夾 手機架
3M 日本原裝進口 速效型 防水噴霧 170ml 衣物 鞋子 皮革 透氣 防水 團購
垃圾桶 家用 客廳 臥室 辦公室 衛生間 大容量 高顏值 創意 收納 垃圾
平衡豬 獨輪車小豬 平衡玩具 不倒翁平衡豬