客户端正在使用PHP连接到MySQL。 PHP脚本和MySQL数据库位于2个不同的Linux服务器上。他抱怨数据库连接正在丢失或超时,并要求我看一看。如何判断是否有任何MySQL连接已被删除或超时?
有没有在MySQL的任何地方,可以让我看看,有多少连接断开或超时?我看着慢查询日志,并没有看到任何东西。
如何诊断这种丢弃/任何建议超时数据库连接问题?
感谢
客户端正在使用PHP连接到MySQL。 PHP脚本和MySQL数据库位于2个不同的Linux服务器上。他抱怨数据库连接正在丢失或超时,并要求我看一看。如何判断是否有任何MySQL连接已被删除或超时?
有没有在MySQL的任何地方,可以让我看看,有多少连接断开或超时?我看着慢查询日志,并没有看到任何东西。
如何诊断这种丢弃/任何建议超时数据库连接问题?
感谢
可以肯定监视
Aborted_clients
状态变量(即,具有SHOW GLOBAL STATUS)和见连接超时。
然而,这个检测最好的地方是在客户端。假设你有适当的错误处理和日志记录在客户端,你通常会看到着名的“服务器已经消失”的错误。
当你的应用程序是用PHP,有一个可能性,它没有适当的错误处理/记录。你应该解决这个问题。
这方面的一个常见的原因是持久连接的从Apache prefork的服务器的滥用。由于Apache prefork服务器通常在很长一段时间内不会执行任何操作,但持续连接可以在每个进程中保持打开状态,因此连接可能最终处于空闲状态的时间太长,从而造成“早上错误”。
这种情况的解决方法是简单 - 只是关闭持久连接。几乎在所有情况下,这都是不恰当的悲观主义。
在问候您可以访问http://dev.mysql.com/doc/refman/5.0/en/server-logs.html了解更多信息
在PHP服务器日志:
例如:
if(mysql_ping($link))
{
//Still Connected.
}
这已被弃用。 – Ross 2013-04-16 16:57:27
用于连接2002的+1 - 连接与Aborted_clients超时 – 2012-05-19 17:57:17