为什么我的 MySQL 连接在 60 秒后超时,即使 `wait_timeout` 设置得更高?

Mary-Kate Olsen
发布: 2024-11-20 03:05:02
原创
267 人浏览过

Why Does My MySQL Connection Timeout After 60 Seconds, Even Though `wait_timeout` Is Set Higher?

MySQL 服务器在 60 秒后断开连接

问题背景

我在执行一个以前运行良好的 SQL 查询时遇到了错误,该错误会在 60 秒后超时并抛出一个错误。虽然查询很慢,但作为夜间任务的一部分运行,所以这本身不是问题(因此请不要建议我对其进行优化)。

问题详情

我通过从 PHP 运行 "select SLEEP(120); (见下文)来重现该错误。但是,从 MySQL 客户端运行相同的语句会成功(返回 0)。我尝试调整 wait_timeout(设置为 28800),但没有成功。我还重启了数据库服务器和机器本身。

错误总是在 60 秒后超时,这让我认为它很可能是设置问题,而不是资源限制问题。

系统信息

  • Windows Server 2003
  • MySQL 5.1.36-community
  • PHP 5.3

测试代码、输出和 SHOW VARIABLES

[测试代码、输出和 SHOW VARIABLES 的结果在此处省略]

解决方案

php 选项 mysql.connect_timeout 是此问题的根源。它不仅用于连接超时,还用于等待来自服务器的第一个响应。你可以这样增加它:

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

以上是为什么我的 MySQL 连接在 60 秒后超时,即使 `wait_timeout` 设置得更高?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板