首页 >后端开发 >php教程 >为什么以前可以成功执行的 MySQL 查询现在会在 60 秒后超时?

为什么以前可以成功执行的 MySQL 查询现在会在 60 秒后超时?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-18 22:12:03612浏览

Why does a MySQL query now time out after 60 seconds when it used to execute successfully?

MySQL 服务器 60 秒超时问题

本文探讨了之前成功的 MySQL 查询现在在 60 秒后超时的问题,显示错误消息“MySQL 服务器已消失”。虽然查询本身很慢,但它一直是夜间工作的一部分,直到最近才出现问题。

问题症状

  • 查询在超时之前恰好停滞 60 秒。
  • 通过运行语句“SELECT SLEEP(120);”可以重现该问题。来自 PHP。
  • 从 MySQL 客户端运行时,相同的语句执行成功。
  • 将“wait_timeout”变量调整为 28800 秒并不能解决问题。

可能的原因

  • CPU 或内存等有限资源不是可能的原因,因为问题总是在 60 秒恰好超时。
  • A潜在原因可能是设置不正确,而不是资源限制。

故障排除

默认 PHP 设置“mysql.connect_timeout”被发现是根源的问题。此设置不仅控制连接超时,还控制服务器初始响应的等待时间。

解决方案

要增加等待时间,可以使用以下 PHP 配置使用:

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

此更改会将等待时间增加到指定值,使查询能够在不超时的情况下完成。

以上是为什么以前可以成功执行的 MySQL 查询现在会在 60 秒后超时?的详细内容。更多信息请关注PHP中文网其他相关文章!

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