什么是远程重启MySQL的最佳和最安全的方法

时间:2014-06-04 05:06:09

标签: php bash shell cron

我有一台服务器(服务器A)在非维护脚本上运行一堆,我需要监控MySQL并在有时遇到复杂查询时卡住它重新启动它。

我要做的是创建一个PHP脚本,并在另一台将成为监视器的服务器(Monitor)中每分钟运行一次cron。

服务器A有一个查询MySQL的php脚本,响应时间超过3秒,它将返回错误代码。

因此,服务器B有一个每分钟运行一次cron的脚本,并使用curl向服务器A中的脚本发出请求。如果它收到错误代码,它将向服务器A上插入的第二个脚本发出请求txt文件第一行中的值。

如果服务器A没有响应来自服务器B的请求,它将向管理员发送电子邮件警报。

服务器A有一个shell脚本,每30秒运行一次cron。读取txt文件,如果值存在,则重新启动mysql并从txt文件中删除该值。

所以所有过程都恢复正常。

这是一种安全的方式,比向apache提供sudo permitions并通过shell_exec()重新启动MySQL更好吗?

到目前为止,我已经完成了除shell脚本之外的所有其他任务。

何我在Shell脚本中读取测试文件的第一行,如果有值,请将其删除?以及如何重启Mysql?

1 个答案:

答案 0 :(得分:0)

我会选择Nagios和Eventhandlers,请参阅http://nagios.sourceforge.net/docs/3_0/eventhandlers.html 您可以检查一些语句或连接本身,如果它失败Nagios(在这种情况下,我认为是NRPE)可以自动执行“/etc/init.d/mysql restart”或任何你想要的。

//编辑:您可以告诉Nagios每隔X秒进行一次查询