试图为mysql发送邮件警报

时间:2013-12-06 05:17:14

标签: mysql

如何为MySQL发送邮件提醒?

我们可以在MySQL有大量连接时发送警报,或者MySQL没有正确响应。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您可以通过多种方式完成此操作。 SHOW FULL PROCESSLIST;查询将为您提供有关连接数以及每个连接(线程)正在执行的查询的信息。样本结果如下。

mysql> SHOW FULL PROCESSLIST;
+------+------+--------------------+------+---------+------+-------+-----------------------+
| Id   | User | Host               | db   | Command | Time | State | Info                  |
+------+------+--------------------+------+---------+------+-------+-----------------------+
| 1298 | root | 192.168.1.76:37648 | NULL | Sleep   |    0 |       | NULL                  |
| 1491 | root | localhost          | NULL | Query   |    0 | init  | show full processlist |
+------+------+--------------------+------+---------+------+-------+-----------------------+

如果您只关心当前连接(线程)的数量,可以使用以下查询。

mysql> SHOW STATUS WHERE `variable_name` = 'Threads_connected';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_connected | 2     |
+-------------------+-------+

现在关于邮件警报,您可以设置一个cron作业(shell脚本),以便在当前连接数超过某个限制时立即发出邮件警报。可以使用mail命令。

$ echo "Max MySQL Connections reached"| mail -s "your subject" your@email.com

另外,我遇​​到了一个很棒的MySQL监控工具 - MONyog。它可以让你为任何MySQL变量设置邮件警报。