function mysql_(){ $con=mysql_connect("localhost","root","xxxx"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("xxx", $con); return $con; } $con=mysql_(); do( //插入数据代码 if(mysql_error()=="MySQL server has gone away"){ mysql_close($con); $con=mysql_(); echo "Reconnect\n"; } usleep(400000); )while(true);
经常就是运行一个小时左右(时间不定)就断开了 显示 MySQL server has gone away ,应该不是超过了空闲时间,因为没到 8 个小时而且一直在写入数据。 我如上重新连接无效,还是一直显示 MySQL server has gone away ,断开可以肯定是 mysql 闪断了,因为这个 php 是收集数据的,我用 nodejs 广播数据,和 php 一起断开。 nodejs 检测重连已经解决, php 一直没解决,重连的判断是正确的,已经重连也没有提示连接错误,就是一直输出MySQL server has gone away,请问我这样写是否有什么错误呢?
1
tsotsi 2016-12-13 02:09:48 +08:00
一旦连接失败就 die,循环也没有
|
2
kungfuchicken 2016-12-13 10:07:14 +08:00
你可以用 mysql_ping 函数来重连
http://php.net/manual/en/function.mysql-ping.php |