Php 如何判断MySQL连接是否已断开或超时?
客户端正在使用PHP连接到MySQL。PHP脚本和MySQL数据库位于两个不同的Linux服务器上。他抱怨数据库连接被中断或超时,并让我看一看 MySQL中是否有任何地方可以向我显示哪些连接已断开或超时,以及有多少连接已断开或超时?我查看了慢查询日志,什么也没看到 关于如何诊断此已断开/超时的数据库连接问题,有什么建议吗Php 如何判断MySQL连接是否已断开或超时?,php,mysql,linux,database-connection,Php,Mysql,Linux,Database Connection,客户端正在使用PHP连接到MySQL。PHP脚本和MySQL数据库位于两个不同的Linux服务器上。他抱怨数据库连接被中断或超时,并让我看一看 MySQL中是否有任何地方可以向我显示哪些连接已断开或超时,以及有多少连接已断开或超时?我查看了慢查询日志,什么也没看到 关于如何诊断此已断开/超时的数据库连接问题,有什么建议吗 关于您可以访问的服务器日志以获取更多信息,谢谢 在PHP中: 链接是可以传递到[]的资源,根据网络状态,这将返回true/false 例如: if(mysql_ping($
关于您可以访问的服务器日志以获取更多信息,谢谢 在PHP中:
- 链接是可以传递到[]的资源,根据网络状态,这将返回true/false
if(mysql_ping($link))
{
//Still Connected.
}
您当然可以监视
Aborted_clients
状态变量(即显示全局状态)和连接超时
但是,检测这种情况的最佳位置是客户端。假设您在客户端有正确的错误处理和日志记录,您通常会看到著名的“服务器已经消失”错误
由于您的应用程序是用PHP编写的,因此可能没有正确的错误处理/日志记录。你应该解决这个问题
造成这种情况的一个常见原因是滥用来自Apache prefork服务器的持久连接。由于Apache prefork服务器通常会让进程在很长一段时间内不工作,但每个进程的持久连接都会保持打开状态,因此这些连接可能会闲置太久,从而产生“晨bug”
解决方法很简单——只需关闭持久连接。几乎在所有情况下,这都是一种不恰当的悲观情绪。+1用于链接2002-与中止的\u客户端的连接超时