问题描述
|
我用PHP编写的导入脚本遇到“ MysqL服务器已消失”的问题
这个http://dev.MysqL.com/doc/refman/5.0/en/gone-away.html页面上列出了可能的原因。但是,我该如何调试,以了解原因?
如果超时,我想知道他发生了哪个事件,哪个超时事件等相关细节。如果查询中断,我想知道这是原因。
因此,除了服务器“已经消失”的非常全局的信息之外,我是否还有办法接收详细信息?
有没有办法记录这些内容:例如超时?
解决方法
我认为找不到MySQL魔术子弹。听起来您需要使用操作系统和/或网络诊断工具。也许在PHP中,您可以执行一些操作,例如尝试对服务器执行ping操作,检查MySQL守护进程是否正在运行等。您可能还想使用Wireshark或tcpdump之类的工具进行检查,以查看是否有任何时髦的东西。网络,例如重置数据包或其他丢弃的连接指示器。
如果MySQL服务器是远程服务器,请尝试对其进行持续的ping操作,以查看是否丢失或延迟了数据包。确保检查大包;我见过ping正常的系统,但是路由器由于MTU不匹配等原因而弄乱了更大的数据包大小。在Windows上,它是:
ping -t -l 1500 mysqlhost
在大多数Linux和Unix系统上,它是:
ping -s 1500 mysqlhost