買過一些阿里雲最便宜的ECS(幾百元/年,1GB內存,安裝Debian),使用Wordpress作小企業官網php
而後隔一段時間就會出現網頁打不開,顯示 「創建數據庫鏈接時出錯」。緣由是mysql宕機了。mysql
通常解決的方法:sql
如今,就是要設置一個定時任務:每分鐘檢查一次mysql是否運行?若是沒有運行,則啓動。數據庫
crontab能夠設置任務,定時執行某個腳本——好比也能夠定時執行一個PHP文件; 若是沒有安裝crontab,可百度一下
# 每隔 1 分鐘執行一次 test.sh */1 * * * * /var/www/test.sh
上述 五個星號 按順序依次表明:0-59分鐘,0-23小時,1-31某一天,1-12某個月,0-6 Sunday=0 or 7 星期幾先別管test.sh是啥,路徑自定義bash
打開 /etc/crontab 文件,添加上述代碼,保存便可ssh
注意:須要root權限
直接ssh執行命令阿里雲
crontab -e
會打開 /var/spool/cron/crontabs/username文件(若是沒有username,這個文件仍是root)rest
添加上述代碼日誌
按ctrl+X退出,提示是否保存,按Y,回車,會有提示:code
crontab: installing new crontab
本方法的好處:會檢查設置是否有錯誤
/etc/init.d/cron restart
或
service cron restart
也有說不須要重啓服務
新建 /var/www/test.sh (我把權限設置755),剛纔的crontab設置就是每分鐘執行這個test.sh的
#!/bin/bash pgrep -x mysqld &> /dev/null if [ $? -ne 0 ] then /etc/init.d/mysql start else echo "MySQL server is running ." fi
注意,若是把 /etc/init.d/mysql start 啓動數據庫命令改成:service mysql start ,則可能由於權限不夠沒法執行
到這裏就設置好了
新建 /var/www/mysql_start.log(我把權限設置555)
把test.sh改爲以下:
#!/bin/bash pgrep -x mysqld &> /dev/null if [ $? -ne 0 ] then echo "At time: `date`: MySQL is stop .">> /var/www/mysql_start.log /etc/init.d/mysql start else echo "MySQL server is running ." fi
而後每分鐘的執行狀況,都會寫入這個日誌文件,