使用mysqladmin命令来检查MySQL数据库的状态。如果检测到MySQL服务没有运行,将尝试重启MySQL服务。这个脚本每2分钟执行一次检查。

首先,创建一个Shell脚本来检查MySQL的状态并根据需要重启它。假设我们将此脚本命名为check_and_restart_mysql.sh

#!/bin/bash

# MySQL root用户的密码
MYSQL_ROOT_PASSWORD="your_mysql_root_password"

# 使用mysqladmin ping命令检查MySQL服务状态
if ! mysqladmin -u root -p"${MYSQL_ROOT_PASSWORD}" ping &> /dev/null; then
    echo "MySQL seems to be down. Attempting to restart..."
    # 尝试重启MySQL服务
    if sudo systemctl restart mysql; then
        echo "MySQL has been successfully restarted." | tee -a /var/log/mysql_monitor.log
    else
        echo "Failed to restart MySQL, please check the logs." | tee -a /var/log/mysql_monitor.log
    fi
else
    echo "MySQL is running." | tee -a /var/log/mysql_monitor.log
fi

确保给这个脚本可执行权限:

chmod +x /path/to/check_and_restart_mysql.sh

接下来,编辑crontab文件来添加一个新的定时任务。打开终端并输入以下命令以编辑当前用户的crontab文件:

crontab -e

在打开的编辑器中,添加以下行来每2分钟运行一次脚本:

*/2 * * * * /path/to/check_and_restart_mysql.sh

这行cron表达式的意思是每2分钟(*/2)运行一次指定的脚本。