服务器资源不足(例如内存不足、高CPU或内存占用,甚至遭受攻击或大量数据导入)可能导致MySQL数据库意外停止。 本指南提供一个守护脚本,定期检查MySQL服务状态,并在服务停止时自动重启。
方法一:使用宝塔面板
如果您使用宝塔面板,请在“任务计划”中添加以下shell脚本:
pgrep -x mysqld > /dev/null
if [ $? -ne 0 ]; then
bash /www/server/panel/script/rememory.sh
/etc/init.d/mysqld start
fi
方法二:手动添加cron任务
mysql_status.sh
的脚本文件,并添加以下内容:#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
pgrep -x mysqld > /dev/null
if [ $? -ne 0 ]
then
echo "At time:$(date) :MySQL is stopped." >> /var/log/mysql_messages
/etc/init.d/mysqld start
else
exit
fi
保存并退出 (:wq
)
crontab -e
编辑crontab,添加以下行:*/5 * * * * /root/mysql_status.sh
这将每5分钟执行一次脚本。 保存并退出 (:wq
)
systemctl restart crond
重启crond服务使配置生效。通过以上步骤,您便成功设置了MySQL守护进程,确保数据库服务的持续运行。 请注意,/var/log/mysql_messages
文件将记录MySQL服务停止事件。