上次事件之后对工作室的网站越来越不上心了,以至于最近搜索排名直接垫底。其中一个原因就是服务器中的MySQL服务三天两头就会停止,打开网站就变成了无法连接数据库。
今天突然想起,这个问题似乎也不算是个什么大问题,只要能检测到服务是否中止,然后再重新启动不就行了嘛。用计划任务加脚本就能实现啊!说干就干!

脚本如下:

pgrep mysqld &> /dev/null
if [ $? -gt 0 ]
then
echo "`date` mysql is stop" >> /www/mysql_listen.log
service mysqld start
else
echo "`date` mysql running" >> /www/mysql_listen.log
fi

既然还是延用的宝塔,就直接用它操作吧,代码也借用网上的。

pgrep -x mysqld &> /dev/null
if [ $? -ne 0 ];then
bash /www/server/panel/script/rememory.sh   
/etc/init.d/mysqld start    
echo "监控到MySQL已停止,已执行重启计划,时间: `date "+%Y-%m-%d %H:%M:%S"` " >> /www/mysql_listen.log  
fi

MySQL停止重启计划任务.jpg
如果不需要输出记录,可以删除echo开头的那行。
尝试停止MySQL,然后回到计划任务中,点击任务中的执行,服务重启成功。

参考资料

宝塔MySQL数据库自动停止或者掉线后,检测并自动重启

最后修改:2024 年 04 月 02 日
如果觉得我的文章对你有用,请随意赞赏