mysql服务器已经消失 - 我该如何调试原因?

时间:2011-05-30 18:20:23

标签: mysql

我在用php编写的导入脚本中遇到“mysql服务器已经消失”

http://dev.mysql.com/doc/refman/5.0/en/gone-away.html页面列出了可能的原因。但是,如何调试这个,知道原因是什么?

如果有一段时间被解雇,我想知道他发生了哪些,超时等相关细节。如果查询被破坏,我想知道这就是原因。

那么,除了服务器“已经消失”的全球信息外,我还有办法接收细节吗?

有没有办法记录这些东西:例如超时?

1 个答案:

答案 0 :(得分:0)

我不认为有一个MySQL魔术子弹要找出来。听起来您需要使用操作系统和/或网络诊断工具。也许在PHP中,您可以做一些事情,比如尝试ping服务器,检查MySQL守护程序是否正在运行等等。您可能还想检查使用Wireshark或tcpdump等工具来查看您是否正在查看网络上任何时髦的东西,例如重置数据包或其他丢失的连接指示符。

如果MySQL服务器是远程的,请尝试对其进行常量ping操作,看看是否看到丢弃或延迟的数据包。确保检查大包;我已经看到ping可以正常工作的系统,但是由于MTU不匹配等原因,路由器搞砸了更大的数据包大小。在Windows上,它是:

ping -t -l 1500 mysqlhost

在大多数Linux和Unix系统上,它是:

ping -s 1500 mysqlhost