Lost connection to MySQL server during query
发布于 2007-09-13 11:24 阅读:36,806 评论:0 标签: mysql

  今天发现一个Mysql的远程连接出现"Lost connection to MySQL server during query"。而且定义的中间变量出现异常变化

  我们在遇到问题的时候,最郁闷的不是找不到解决方法,而是不知道引发错误的原因有很多种。上网查看的资料,你看了半天会很纳闷:这是哪门子的事呢?情况怎么和我的一点也没相似之处呢?

  很郁闷,今天偶又遇见这种事了!

  查询资料http://www.linuxaid.com.cn/tips/4/3/432627797.shtml,里面提到:

以下是引用片段:

  这个问题是由于glibc的一个bug造成的。
  在glibc某些版本中,gethostbyaddr函数(确切地说是_nss_dns_gethostbyaddr_r)存在缓冲区溢出问题,在处理大数据时会造成SEGMENT FAULT。
  在处理远程连接时,mysqld会调用ip_to_hostname()函数,再由这个函数调用gethostbyaddr函数,最后系统在执行nss_dns_gethostbyaddr_r函数处崩溃。因此,会出现上述情况。
  解决问题的办法是升级glibc。

  但实际上,在偶这的情况却不是这样的。

  在执行“php a.php”后,再次执行“php a.php”,便有可能出现“Lost connection to MySQL server during query”的错误。用“ps aux | grep php”,会显示一个“php a.php”的进程。之所以是一个,是因为在mysql出错后那个进程就自己断了。

  解决方案:找到进程号,直接kill!

  使用的连接是短连结(mysql_connect())。为什么会丢失连接?还未知。