我在用php编写的导入脚本中遇到“mysql服务器已经消失”
此http://dev.mysql.com/doc/refman/5.0/en/gone-away.html页面列出了可能的原因。但是,如何调试这个,知道原因是什么?
如果有一段时间被解雇,我想知道他发生了哪些,超时等相关细节。如果查询被破坏,我想知道这就是原因。
那么,除了服务器“已经消失”的全球信息外,我还有办法接收细节吗?
有没有办法记录这些东西:例如超时?
答案 0 :(得分:0)
我不认为有一个MySQL魔术子弹要找出来。听起来您需要使用操作系统和/或网络诊断工具。也许在PHP中,您可以做一些事情,比如尝试ping服务器,检查MySQL守护程序是否正在运行等等。您可能还想检查使用Wireshark或tcpdump等工具来查看您是否正在查看网络上任何时髦的东西,例如重置数据包或其他丢失的连接指示符。
如果MySQL服务器是远程的,请尝试对其进行常量ping操作,看看是否看到丢弃或延迟的数据包。确保检查大包;我已经看到ping可以正常工作的系统,但是由于MTU不匹配等原因,路由器搞砸了更大的数据包大小。在Windows上,它是:
ping -t -l 1500 mysqlhost
在大多数Linux和Unix系统上,它是:
ping -s 1500 mysqlhost