首页 >数据库 >mysql教程 >为什么我的长时间运行的 MySQL 查询会在 60 秒后出现'MySQL 服务器已消失”错误?

为什么我的长时间运行的 MySQL 查询会在 60 秒后出现'MySQL 服务器已消失”错误?

Susan Sarandon
Susan Sarandon原创
2024-12-20 16:03:10633浏览

Why Does My Long-Running MySQL Query Result in a

MySQL 服务器已消失 - 意外超时问题

执行长时间运行的查询(120 秒睡眠)时,用户遇到了进程失败并显示错误消息“MySQL 服务器已消失”的问题。这会在 60 秒后发生。 Windows Server 2003 和 MySQL 5.1.36-community 上均存在该问题。

故障排除步骤

用户已尝试各种故障排除措施,包括将 wait_timeout 设置调整为28800 秒并重新启动数据库服务器和计算机。尽管做出了这些努力,超时错误仍然存​​在。

可能的原因

问题似乎与设置有关,而不是资源短缺,因为超时始终发生在60秒

解决方案

问题源于PHP选项mysql.connect_timeout。虽然其主要目的是指定连接超时,但它还确定第一次服务器响应所允许的时间。要解决此问题,用户需要增加此超时值,如下所示:

ini_set('mysql.connect_timeout', 300);
ini_set('default_socket_timeout', 300);

通过将这些值设置为 300 秒(5 分钟),系统在超时之前等待服务器响应的时间更长。这使得长时间运行的查询能够成功完成。

以上是为什么我的长时间运行的 MySQL 查询会在 60 秒后出现'MySQL 服务器已消失”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn