利用 cron 自动启动崩溃的 MySQL 服务

114次阅读

共计 968 个字符,预计需要花费 3 分钟才能阅读完成。

Rate this post

利用 cron 自动启动崩溃的 MySQL 服务
最近网站的 MySQL 服务一直奔溃,换了内存大的服务器还是不行。博主不太会找这个问题,只好尽可能地第一时间重启,但是大多时候是不及时的。这里尝试利用定时执行工具 cron 来第一时间自动启动崩溃的 MySQL 服务。

一、新建脚本目录

cd /home/ && sudo mkdir scripts && cd scripts

二、将 bash 脚本写入 mysqlmon.sh

cat <<EOT >> mysqlmon.sh  #!/bin/bash    # Check if MySQL is running  sudo service mysql status > /dev/null 2>&1    # Restart the MySQL service if it's not running.  if [$? != 0]; then      echo -e "MySQL Service was down. Restarting now...n"      sudo service mysql restart  else      echo -e "MySQL Service is running already. Nothing to do here.n"  fi  EOT

或者手动录入,输入 sudo crontab -e 后,写入

* * * * * /home/scripts/mysqlmon.sh > /dev/null 2>&1

三、赋予 mysqlmon.sh 可执行权限

sudo chmod +x mysqlmon.sh

四、定时运行 mysqlmon.sh 脚本

(crontab -l 2>/dev/null; echo "* * * * * /home/scripts/mysqlmon.sh > /dev/null 2>&1") | crontab -

五、测试效果

尝试手动关闭 MySQL,看看脚本能否发现 MySQL 被关闭和能否启动它
手动关闭 MySQL

sudo service mysql stop

等待 1 分钟后,查看 MySQL 的运行状态

sudo service mysql status

如果发现没起来,那就是上面的脚本内容有问题或者脚本的可执行权限没设置好,再或者是 cron 任务没跑起来。可手动启动 MySQL 后,对以上的操作挨个检查。
手动启动 MySQL 命令

sudo service mysql start

正文完
 0