以下是一个宝塔面板 MySQL 进程守护脚本,可以有效监控并解决 MySQL 数据库自动停止的问题。这个脚本会定期检查 MySQL 进程状态,当发现进程停止时自动重启,并记录相关日志以便排查问题。
#!/bin/bash
# MySQL进程守护脚本,解决自动停止问题
# 日志文件路径
LOG_FILE="/var/log/mysql_guard.log"
# MySQL服务名称(宝塔面板默认)
MYSQL_SERVICE="mysqld"
# 检查间隔时间(秒)
CHECK_INTERVAL=30
# 记录日志函数
log() {
echo "[$(date +'%Y-%m-%d %H:%M:%S')] $1" >> $LOG_FILE
}
# 检查并重启MySQL函数
check_and_restart() {
# 检查MySQL进程是否存在
if ! pgrep -x $MYSQL_SERVICE > /dev/null; then
log "MySQL进程已停止,尝试重启..."
# 尝试启动MySQL
/etc/init.d/$MYSQL_SERVICE start
# 等待2秒后检查是否启动成功
sleep 2
if pgrep -x $MYSQL_SERVICE > /dev/null; then
log "MySQL重启成功"
# 记录MySQL错误日志片段,便于排查问题
if [ -f "/www/server/data/error.log" ]; then
log "最近的错误日志:"
tail -n 20 /www/server/data/error.log >> $LOG_FILE
fi
else
log "MySQL重启失败,请手动检查!"
# 可以在这里添加邮件通知或其他告警方式
fi
else
# 可选:记录正常运行状态,注释掉可减少日志量
# log "MySQL运行正常"
:
fi
}
# 检查日志文件是否存在,不存在则创建
if [ ! -f $LOG_FILE ]; then
touch $LOG_FILE
log "MySQL守护脚本启动"
fi
# 循环检查
while true; do
check_and_restart
sleep $CHECK_INTERVAL
done
使用方法
本站部分资源来源于用户上传和网络公开信息,如有侵权请邮件联系站长:237914037@qq.com,分享目的仅供大家学习和交流,您必须在下载后24小时内删除!本站提供的源码、模板、插件等等其他资源,不包含技术服务请大家谅解! 如有链接无法下载、失效或广告,请联系管理员处理!默认解压密码为:sonay.cn