问题背景
迁移到阿里云后,经常出现 MySQL 异常退出的问题,导致博客打不开。每次都是我发现之后,去服务器上重启 MySQL。 解决方案:用守护进程来监控 MySQL 的状态,如果发现它挂了,就自动重启。
编写守护进程代码
用 shell 脚本来写守护进程,比较方便。 代码如下(mysql-deamon.sh):
#!/bin/sh
while true;
do
status=$(service mysqld status)
if \[\[ "$status" != "MySQL running"\* \]\]; then
echo $(date)
echo "error, must restart"
service mysqld start
fi
sleep 2
done
root 权限运行它就可以了。一旦检测到 MySQL 异常,就会执行 start 命令。
开机自启动
在 /etc/rc.local 中添加命令:
nohup bash /home/admin/deamons/mysql-deamon.sh > /home/admin/deamons/mysql-deamon.log &
搞定。