我最近没有在这种情况下改变任何东西,但是最近我对远程服务器的mysqli_connect()非常慢(大约是它达到30秒最大执行时间的一半)。当它工作时,响应时间在28到30秒之间。
我在两台服务器上重启了MySQL。持有PHP脚本的服务器是本地WAMP服务器,远程服务器是LAMP堆栈。 LAMP服务器执行正常服务与WAMP服务器请求的相同信息。查询似乎不是问题,而是看起来像mysqli_connect()是问题:
$mtime = microtime();
$mtime = explode(" ",$mtime);
$starttime = $mtime[1] + $mtime[0];
$this->conn = mysqli_connect($this->host,$this->user,$this->password) or die(mysqli_error($this->conn));
$etime = microtime();
$etime = explode(" ",$etime);
$endtime = $etime[1] + $etime[0];
$totaltime = ($endtime - $starttime);
echo('<!--mysqli_connect took: '.$totaltime.' seconds-->');
该页面(当它没有给出达到max_execution_time的500响应时)将显示:
<!--mysqli_connect took: 28.975151777267 seconds-->
远程LAMP服务器上的相同代码将显示:
<!--mysqli_connect took: 0.036190032958984 seconds-->
我没有更新此代码或进行任何配置更改,因为这是有效的。我在任一服务器上都没有错误,除了在WAMP服务器上超过30秒时超出max_execution_time错误。有没有人有什么建议?
感谢阅读。
答案 0 :(得分:4)
也许是DNS问题? 您是否尝试将主机字符串更改为直接IP地址而不是域名?这里有一个类似的问题,Connecting to mysql server(localhost) very slow,听起来很相似,但它是本地主机,并改为127.0.0.1解决了这个问题。
答案 1 :(得分:0)
发现问题并且与DNS相关。我仍然不完全理解它。似乎守护程序named
在LAMP服务器上停止了。此服务器是我用于连接的域名的权威NS。我不知道为什么它有时会工作,或者为什么当我使用IP地址时它不起作用,但它现在工作正常我再次启动服务。
感谢您的帮助。