跳到主要内容

MySQL 中 wait_timeout和interactive_timeout总结?

参考答案:

在 MySQL 中,wait_timeoutinteractive_timeout 是两个与客户端连接超时相关的系统变量。当客户端与服务器建立连接后,这些超时参数用于决定何时自动断开这个连接,以防止连接被长时间占用或保持空闲状态。

  1. wait_timeout:

    • 这是一个全局变量,影响所有连接(非交互式的和交互式的)。
    • 它指定了一个非交互式连接可以保持空闲的最大秒数。如果在此时间内没有活动(例如,没有查询或命令发送到服务器),则连接将被自动断开。
    • 默认值通常为 28800 秒(8 小时)。
    • 可以通过 SET GLOBAL wait_timeout = value; 来修改全局设置,或者通过 SET SESSION wait_timeout = value; 来修改当前会话的设置。
  2. interactive_timeout:

    • 这也是一个全局变量,但主要影响交互式连接(例如,通过 MySQL 客户端工具或某些图形界面工具建立的连接)。
    • 它指定了一个交互式连接可以保持空闲的最大秒数。与 wait_timeout 类似,如果在此时间内没有活动,连接将被自动断开。
    • 默认值通常与 wait_timeout 相同,但某些系统或配置可能会为其设置不同的值。
    • 可以通过 SET GLOBAL interactive_timeout = value; 来修改全局设置,或者通过 SET SESSION interactive_timeout = value; 来修改当前会话的设置。

总结

  • wait_timeoutinteractive_timeout 都是用于自动断开空闲连接的超时参数。
  • wait_timeout 主要影响非交互式连接,而 interactive_timeout 主要影响交互式连接。
  • 这两个参数都有全局和会话级别的设置,允许你为整个服务器或单个连接会话设置不同的值。
  • 根据你的应用程序和用例,可能需要调整这些参数的值,以确保连接不会不必要地保持打开状态,从而节省资源并减少潜在的安全风险。