我在Debian上运行mysql。
有没有办法监控mysql并在它锁定时自动重启?例如,有时服务器开始占用100%的CPU并且开始运行非常慢。如果我重新启动mysql,事情就会清理完毕,服务器开始工作正常,但我并不总是在手动重新启动它。
有没有办法监控mysql,如果cpu超过95%超过10分钟,那么mysql会自动重启
答案 0 :(得分:2)
你可以写一个cronjob来使用
show processlist;
show processlist
将返回列Time
和Id
,
你可以添加更多逻辑来检查,
如查询卡住超过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
`