最近在一台低配小鸡上跑的一个垃圾站遇到MySQL频繁宕掉的情况,根据想法,定时检测mysql进程,一旦进程终止又可以自动重启。
centos7 标签的文章" target="_blank">Centos7-480x308.png" alt="1667914971 centos7" width="480" height="308" title="Centos7定时监测mysql进程终止后自动启动mysql 3" srcset="https://www.52pchome.com/wp-content/uploads/2019/11/1667914971-centos7-480x308.png 480w, https://www.52pchome.com/wp-content/uploads/2019/11/1667914971-centos7.png 573w" sizes="(max-width: 480px) 100vw, 480px" />
最后找到了简单的解决方案,以备不时之需及其他需要的网友。

1、编写脚本 /root/listen/listen_mysql.sh
pgrep mysqld &> /dev/null if [ $? -gt 0 ] then echo "`date` mysql is stop" >> /var/log/mysql_listen.log service mysql start else echo "`date` mysql running" >> /var/log/mysql_listen.log fi
给权限:
chmod 777 /root/listen/listen_mysql.sh
2、添加定时任务
crontab -e
每隔一小时自动执行脚本检测mysql进程:
* */1 * * * root /root/listen/listen_mysql.sh
间隔时间可以根据需要自行修改,保存退出重启crond进程:
systemctl restart crond.service
这样系统会每个小时自动检测一次mysql状态,如果停止了会自动重启。
监控日志输出在了 /var/log/mysql_listen.log



















