You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL交互式会话变量丢失:控制超时的参数及延长方法

MySQL会话超时与用户变量丢失问题解答

1. 控制变量丢失行为的超时参数

控制该行为的核心参数是**interactive_timeout和wait_timeout**:

  • interactive_timeout:适用于mysql命令行这类交互式会话,定义了连接空闲时长超过阈值后,服务器会主动断开连接。
  • wait_timeout:适用于应用程序连接这类非交互式会话,作用逻辑与前者一致。

用户变量(如@start、@finish)属于会话级变量,仅存在于当前连接的生命周期内。当连接因超时被服务器断开后,变量会被销毁;重连后新会话中没有这些变量的定义,因此查询结果为NULL。

2. 是否可以延长该超时时间?

可以通过临时或永久方式调整超时时间:

  • 临时调整(重启服务后失效):
    拥有管理员权限的情况下,执行以下全局设置命令:

    SET GLOBAL interactive_timeout = 3600; -- 示例设置为1小时,可按需修改秒数
    SET GLOBAL wait_timeout = 3600;
    

    注意:该设置对当前已建立的会话不生效,需重新连接后才会应用新的超时值。

  • 永久调整:
    修改MySQL配置文件(Linux常见路径为/etc/my.cnf或/etc/mysql/my.cnf,Windows为my.ini),在[mysqld]配置段添加或修改:

    interactive_timeout = 3600
    wait_timeout = 3600
    

    保存配置后重启MySQL服务,新的超时设置将永久生效。

提示:超时时间并非越长越好,过长会导致大量空闲连接占用服务器资源,需结合实际业务场景合理设置。

内容的提问来源于stack exchange,提问作者xpt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 12:39:58