1. Home
  2. /
  3. Web technology
  4. /
  5. Linux
  6. /
  7. [ MySql ] –...

[ MySql ] – MySql 停止後 自動重啟

評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 0,平均評等: 0]

小編的網站是架在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

評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 0,平均評等: 0]
!去下營經續永站本助幫能就下一點輕輕,話的您到助幫有章文的我果如 如果我的文章有幫助到您的話,輕輕點一下就能幫助本站永續經營下去!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *