【问题标题】:Mysql timezone change on linux after Linux system timezone changeLinux系统时区更改后Linux上的Mysql时区更改
【发布时间】:2016-04-23 16:36:35
【问题描述】:

我已将我的 Cent OS 时区更改为 Asia/Calcutta ,但安装的 MySQL 是指系统具有的旧时区。我是否需要重新启动 MySQL -(它的差异让我暂时关闭 MySQL)才能看到效果,或者我需要做不同的 conf 更改才能看到与系统相同的 MySQL 时区。

谢谢

【问题讨论】:

    标签: mysql linux datetime timezone


    【解决方案1】:

    是的,可以在运行时更改 MySQL 实例的 time_zone。

    我们没有必要重复一切 MySQL 参考手册中关于这个主题的内容。 https://dev.mysql.com/doc/refman/5.6/en/time-zone-support.html(请务必参考您正在运行的 MySQL 的具体版本。)

    底线...您可以在不重新启动的情况下完成对 MySQL time_zone 设置的更改。

    如果 time_zone='SYSTEM',那么要在不重启 MySQL 服务器的情况下更改 MySQL 服务器时区,您需要修改 time_zone 变量。例如,将 time_zone 更改为 UTC

    SET GLOBAL time_zone = '+00:00'
    

    我没有测试更改 Linux 操作系统时区设置时的行为。我们所有的 MySQL 服务器都以 UTC 运行,与操作系统时区设置无关。 (我们的 MySQL 实例 time_zone 与操作系统时区分离。)

    在不知道MySQL各个时区相关系统变量的当前设置的情况下,或者你是否在mysql数据库中填充了时区支持表,我无法提供具体的建议。

    请注意,当前与数据库的连接不会受到更改全局变量值的影响。会话的 time_zone 设置是在会话启动时建立的。 (这对您的影响取决于您的应用是否正在使用连接池、重复使用已建立的连接,或者您的应用是否正在搅动连接。

    我建议你从参考文档开始。

    我强烈建议您在对无法重新启动的系统进行更改之前,在测试环境中测试您提议的更改。

    【讨论】: