V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xcloud
V2EX  ›  PHP

求助! mysql 突然断开 PHP 重新连接无效的问题

  •  
  •   xcloud · 2016-12-12 17:14:42 +08:00 · 2247 次点击
    这是一个创建于 2932 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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,请问我这样写是否有什么错误呢?

    2 条回复    2016-12-13 10:07:14 +08:00
    tsotsi
        1
    tsotsi  
       2016-12-13 02:09:48 +08:00
    一旦连接失败就 die,循环也没有
    kungfuchicken
        2
    kungfuchicken  
       2016-12-13 10:07:14 +08:00
    你可以用 mysql_ping 函数来重连
    http://php.net/manual/en/function.mysql-ping.php
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   927 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 22:40 · PVG 06:40 · LAX 14:40 · JFK 17:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.