最近几个月网站服务器老是半夜挂掉,罪魁祸首就是 mysql 自动停止导致的,那就头痛医头,想办法让Mysql 自动启动起来。
要解决这个mysql无规律自动停掉的问题,首先给服务器加个定时执行任务,每分钟去检测一下数据库服务的运行状态,要是down 掉了,就立马启动起来。
我真是太机智了。(别问我怎么不去解决mysql 死掉的真正诱因)
第一步,添加定时任务,使用crontab。
crontab -e
*/1 * * * * /目录/文件名.sh #表示每分钟执行一次 sh 文件
第二步,编写shell执行文件,代码如下:
#!/bin/bash
pgrep -x mysqld &> /dev/null
if [ $? -ne 0 ]
then
echo “At time: `date` :MySQL is stop .”>> /日志路径
/etc/init.d/mysqld start
else
echo “MySQL server is running .”
fi
这里要注意,不能用service mysqld/mysql start 命令来启动,会导致mysql启动不了,应使用绝对路径,/etc/init.d/mysqld start来启动。
另外,也可以不写入日志。删掉>> /日志路径即可。
如发现这样操作了,还没有得到期望的结果,可排查crontab是否执行了相应的任务,脚本权限是否够,脚本内部命令或格式是否正确等方面。
若权限不够,则加上权限。
chmod +x ./shell文件.sh #使脚本具有执行权限