如何为MySQL发送邮件提醒?
我们可以在MySQL有大量连接时发送警报,或者MySQL没有正确响应。有人可以帮我解决这个问题吗?
答案 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变量设置邮件警报。