mysql服务器已经消失 - 没有超时错误或崩溃

时间:2011-06-15 17:02:34

标签: php mysql

我正在使用WAMP(Apache 2.2.11,MySQL 5.1.36,PHP 5.3.0)编写一个PHP Web应用程序,其中包含指向MySQL数据库的链接。

我在Toad中执行一个大约需要2分钟的程序来执行。如果我尝试在PHP应用程序中运行它,我得到错误“MySQL服务器已经消失...”,“错误读取结果集的标题”,“最大执行时间超过60秒”

我将mysql.connect_timeout提升到600(使用ini_set),将default_socket_timeout提高到600(如this question中所示。这解决了超时错误,但我仍然得到前两个。

我尝试将max_input_time设置为-1,在MySQL服务器端,我将max_allowed_pa​​cket提升到256M。这些都没有解决问题。

在不改变正在运行的MySQL程序的情况下,还有其他方法可以绕过此错误吗?

加载网页时:

set_time_limit(0);
ini_set('mysql.connect_timeout', 600);//for long queries
ini_set('default_socket_timeout', 600);//for long queries
//ini_set('max_input_time',-1); //don't know what this does

调用查询时:

if($reconnect===true){
  $this->disconnectDB();
}
$this->connectToDB();
if($this->selectDB($dbName)===FALSE){
  return false;
}
if(mysql_ping($this->con)===false){
  return array();           
}
$result = mysql_query($query,$this->con); //this is where the connection "goes away"

1 个答案:

答案 0 :(得分:0)

这是PHP设置的结果:maximum execution time of 60 seconds exceeded。将set_time_limit(0)设置为在需要时禁用时间限制。

MySQL server has gone away in...可能是几件事的结果。包括MySQL崩溃。您可能需要查看mysql日志以获取线索。