MySQL 服务器在 60 秒后断开连接
问题背景
我在执行一个以前运行良好的 SQL 查询时遇到了错误,该错误会在 60 秒后超时并抛出一个错误。虽然查询很慢,但作为夜间任务的一部分运行,所以这本身不是问题(因此请不要建议我对其进行优化)。
问题详情
我通过从 PHP 运行 "select SLEEP(120); (见下文)来重现该错误。但是,从 MySQL 客户端运行相同的语句会成功(返回 0)。我尝试调整 wait_timeout(设置为 28800),但没有成功。我还重启了数据库服务器和机器本身。
错误总是在 60 秒后超时,这让我认为它很可能是设置问题,而不是资源限制问题。
系统信息
测试代码、输出和 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中文网其他相关文章!