MySQL time_zone 'current session' - 是 IP 还是连接?

MySQL time_zone 'current session' - is it IP or Connection?

我有一个项目,间歇性地将 time_zone 值从用户定义的值更改为 SYSTEM,我正在尝试确定 MySQL 是否考虑 'the current session'( MySQL TimeZone) 连接,或者连接来自的工作站 IP。

基本上,如果不是每个连接,那么其他东西正在连接到 MySQL 并将 time_zone 值更改回 SYSTEM,这会对我已经连接的软件产生影响。

如果是每个连接,那么我将返回尝试找出 time_zone 被重置的位置。

有关更多信息,我的项目是用 Delphi XE3 编写的,使用 MyDAC 组件进行数据库连接。当项目加载时,我读取一个连接文件,如果设置了 time_zone 字符串,我将执行 'Set Time_zone' 查询。该连接在整个应用程序 运行 生命周期内保持活动状态,并且对应用程序是全局的(即我没有 create/connect 从该应用程序到数据库的其他连接)。

感谢您的帮助!

一个MySQL会话对应一个连接

MySQL 服务器根据系统变量wait_timeout 的值在超时后自动断开空闲会话,默认为 28800 秒(8 小时)。听起来 Delphi 正在自动重新连接您的会话,但发生这种情况时每个会话的设置将会丢失。

您应该更改您的应用程序,以便它在长时间空闲时发送时区设置。您还可以增加 wait_timeout(最大值为 2147483,24.85 天)。