【问题标题】:How to set MySQL to use GMT in Windows and Linux如何在 Windows 和 Linux 中设置 MySQL 以使用 GMT
【发布时间】:2010-10-01 01:32:19
【问题描述】:

我只是想让 MySQL 以 GMT 存储时间...

我在这里阅读了文档:http://dev.mysql.com/doc/refman/5.1/en/time-zone-support.html

它说要在选项文件中设置:default-time-zone='timezone'。

但是,我搜索了几个不同的术语,但找不到“时区”应该是的可能值。我也不知道在 my.ini(以及 Linux 中的 my.cnf)中放置该指令的位置。在 [msyqld] 下面?

【问题讨论】:

    标签: mysql date time


    【解决方案1】:

    转到 my.ini 文件的 [mysqld] 部分并在该部分下输入此行

    默认时区 = '+00:00'

    '+00:00' 表示与 GMT 的偏移量,在您的情况下为 0。请注意字符串中的 '+' 号。

    您不需要为您的问题安装任何时区表。重新启动服务器后,您的服务器将在 UTC 时区运行,因此 NOW() 将为您提供 GMT 时间。

    默认情况下,MySQL 设置为您的系统时区,即。您的服务器时区与您的系统时区相同。所以你也可以改变你的系统时区来解决你的问题,虽然这是不推荐的。

    【讨论】:

    • 不知道为什么启动后有这么多答案要手动设置。你想要它在配置中。设置它并忘记它。 :)
    【解决方案2】:

    为了省点点击,区域名称列表如下所示:

    select name from mysql.time_zone_name;
    

    请注意设置固定偏移区域,例如“GMT”或“+00:00”,因为它不会更改以匹配本地时间/DST 等。如果您希望它遵循本地时间,请将区域设置为 '取而代之的是欧洲/伦敦。如果您不希望这样,无论如何我都会选择 UTC 而不是 GMT。

    【讨论】:

      【解决方案3】:

      默认情况下不加载 MySQL 时区表,这可能是您遇到困难的原因。您需要load the timezone table,然后按照上述说明设置您的时区。

      【讨论】:

        【解决方案4】:

        我将它用于 GMT+2: SET GLOBAL time_zone = '+02:00';

        【讨论】:

          【解决方案5】:

          去他妈的... DATETIME,虽然在查看表格时看起来更容易,但不值得做这个噩梦。

          我只是打算使用 TIMESTAMP。

          【讨论】:

            【解决方案6】:

            是的,这是 mysqld 的服务器选项,因此应该放在 [mysqld] 部分。

            另外,关于价值观,请参阅The Definitive Guide to MySQL 5

            【讨论】:

            • 格林威治标准时间的字符串是什么...我还没有找到列出“时区”可接受值的表格
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-12-07
            • 1970-01-01
            • 2015-02-04
            • 2022-06-13
            • 1970-01-01
            相关资源
            最近更新 更多