2011-02-27 73 views
2

客户端正在使用PHP连接到MySQL。 PHP脚本和MySQL数据库位于2个不同的Linux服务器上。他抱怨数据库连接正在丢失或超时,并要求我看一看。如何判断是否有任何MySQL连接已被删除或超时?

有没有在MySQL的任何地方,可以让我看看,有多少连接断开或超时?我看着慢查询日志,并没有看到任何东西。

如何诊断这种丢弃/任何建议超时数据库连接问题?

感谢

回答

5

可以肯定监视

Aborted_clients 

状态变量(即,具有SHOW GLOBAL STATUS)和见连接超时。

然而,这个检测最好的地方是在客户端。假设你有适当的错误处理和日志记录在客户端,你通常会看到着名的“服务器已经消失”的错误。

当你的应用程序是用PHP,有一个可能性,它没有适当的错误处理/记录。你应该解决这个问题。


这方面的一个常见的原因是持久连接的从Apache prefork的服务器的滥用。由于Apache prefork服务器通常在很长一段时间内不会执行任何操作,但持续连接可以在每个进程中保持打开状态,因此连接可能最终处于空闲状态的时间太长,从而造成“早上错误”。

这种情况的解决方法是简单 - 只是关闭持久连接。几乎在所有情况下,这都是不恰当的悲观主义。

+0

用于连接2002的+1 - 连接与Aborted_clients超时 – 2012-05-19 17:57:17

相关问题