宝塔面板MySql进程守护脚本解决宝塔mysql数据库自动停止问题

以下是一个宝塔面板 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

使用方法

创建脚本文件

将上述代码保存为/root/mysql_guard.sh,并赋予执行权限:

chmod +x /root/mysql_guard.sh​

测试脚本

手动运行脚本测试是否正常工作:

/root/mysql_guard.sh

可以尝试手动停止 MySQL 服务,观察脚本是否能自动重启。

设置后台运行

为了让脚本在后台持续运行,可以使用 nohup:

nohup /root/mysql_guard.sh &

设置开机启动

编辑/etc/rc.local文件,在 exit 0 前添加:

nohup /root/mysql_guard.sh &

脚本特点

自动监控:每 30 秒检查一次 MySQL 进程状态

自动重启:发现 MySQL 停止时自动尝试重启

详细日志:记录所有操作和错误信息到/var/log/mysql_guard.log

问题排查:重启时自动记录最近的 MySQL 错误日志,帮助定位问题根源

配合措施

定期查看日志文件/var/log/mysql_guard.log,了解 MySQL 停止的频率和可能原因

检查 MySQL 错误日志/www/server/data/error.log,解决根本问题

考虑优化 MySQL 配置,避免因内存不足等原因导致崩溃

可以根据需要在脚本中添加邮件通知功能,及时知晓 MySQL 异常情况

这个脚本能够有效解决 MySQL 自动停止的问题,确保数据库服务的连续性,同时通过日志记录帮助你找到问题的根本原因。
打赏
WordPress站点删除xmlrpc.php防DDOS攻击
上一篇
Windows Server 2012自动备份脚本PowerShell编写利用Windows Server自带的Windows Server Backup功能来实现自动备份
下一篇
博主索奈
Sonay
28 文章
0 评论
0 收藏
生成中...
二维码标题