我将php 5(更确切地说是5.3.1)安装为apache模块。
在我的一个应用程序随机挂起mysql_connect
之后 - 有时可以工作,有时候没有,有时会重新加载页面帮助。
如何解决这个问题?
我使用Windows Vista,Apache / 2.2.14(Win32)PHP / 5.3.1和php模块,MySql 5.0.67-community-nt。
一分钟后,我收到错误消息:
Fatal error: Maximum execution time of 60 seconds exceeded in path\to\mysqlcon.php on line 9
我在本地运行MySql,重负载不是原因:
SHOW PROCESSLIST
显示了大约3个流程
SHOW VARIABLES LIKE 'MAX_CONNECTIONS'
是100。
更新
起初我以为这与mysql_connect有关。 但现在我无法肯定地说。
当我将该行插入调试时,更困难的是:
$fh = fopen("E://_debugLog", 'a'); fwrite($fh, __FILE__ . " : " . __LINE__ . "\n"); fclose($fh);
脚本作为规则在该位置附近开始工作。
重启apache解决了这个问题。
答案 0 :(得分:1)
您可能正在达到MySQL连接限制,尝试连接的脚本将旋转其轮子,直到连接可用,但在此之前运行到最大执行时间限制。当您遇到其中一个长暂停时,跳进mysql监视器并执行SHOW PROCESSLIST
,它将列出与服务器的所有连接。您可以使用SHOW VARIABLES LIKE 'MAX_CONNECTIONS'
检索连接限制。如果活动进程的数量接近或处于max_connections值,那就是你的问题。
答案 1 :(得分:1)
尝试隔离问题:
答案 2 :(得分:1)