如何监控并自动重启mysql?

时间:2011-01-22 20:57:19

标签: mysql debian

我在Debian上运行mysql。

有没有办法监控mysql并在它锁定时自动重启?例如,有时服务器开始占用100%的CPU并且开始运行非常慢。如果我重新启动mysql,事情就会清理完毕,服务器开始工作正常,但我并不总是在手动重新启动它。

有没有办法监控mysql,如果cpu超过95%超过10分钟,那么mysql会自动重启

2 个答案:

答案 0 :(得分:2)

你可以写一个cronjob来使用

show processlist;

show processlist将返回列TimeId
你可以添加更多逻辑来检查,
如查询卡住超过600秒,查询为SELECT
您可以使用Id值来执行kill $id;

这比盲目重启服务器更安全。

如果你有读/写之间的隔离(意味着只读SQL将只使用具有读权限的用户),这甚至可以更简单。

答案 1 :(得分:0)

使用此bash脚本检查每一分钟。

#!/bin/bash

#Checking whether MySQL is alive or not
if mysqladmin ping | grep "alive"; then
   echo "MySQL is up"
else
   sudo service mysql restart
fi

`