【问题标题】:Cant set mysql timezone to madrid无法将mysql时区设置为马德里
【发布时间】:2012-07-05 02:39:21
【问题描述】:

根据这个question关于如何在mysql中设置time_zone和这个时区list,我认为这应该可以工作:

SET time_zone = 'Europe/Madrid';

但这是 sqlBuddy 记录的内容:

报告了以下错误:未知或不正确的时区: '欧洲/马德里'

【问题讨论】:

    标签: mysql sql timezone


    【解决方案1】:

    确保已填充时区信息表。来自mysql

    该值可以指定为命名时区,例如“欧洲/赫尔辛基”、“美国/东部”或“MET”。只有在 mysql 数据库中的时区信息表已经创建并填充后,才能使用命名时区。

    虽然我个人更喜欢以 UTC 格式存储所有日期。我发现它使推理变得更加简单,尤其是在引入夏令时时。

    【讨论】:

    • 必须加载表格;该机制取决于操作系统。说明是here。在大多数 Linux 发行版上,这应该可以工作:mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
    • @ToniMichelCaubet 我提供的 mysql 文档的链接包含此信息。正如 MarkReed 指出的,它依赖于操作系统。您的数据库在哪个操作系统上?
    • Debian。谢谢,我会试试你的 sippet
    • @ToniMichelCaubet NOW() 返回的值以当前时区表示。现在您有一些填充的时区,出于调试目的,请尝试将时区更改为 'US/Eastern' 并调用 NOW() 然后更改回 'Europe/Madrid' 并调用 NOW() 然后确保存在差异.
    • @ToniMichelCaubet 使用SUPER 权限执行以下操作:SET GLOBAL time_zone = 'Europe/Madrid'; 然后运行SELECT @@global.time_zone, @@session.time_zone;,然后使用'US/Eastern' 时区重复。结果如何?
    【解决方案2】:

    如果您不想制作自己的时区设置表,另一种解决方案。

    如果您有自己的服务器,请保持 MySQL 不变。默认为时区SYSTEM

    Ubuntu用户可以使用

    dpkg-reconfigure tzdata
    

    对于更保守的操作系统(Centos、RedHat、Fedora)使用

    tzconfig
    

    用于更改系统时区的命令。将弹出一个 CLI 应用程序,您可以在其中选择区域和位置。它不仅是一只石头的两只鸟,而且它还可以自动适应日光变化,而无需在 MySQL 时区表中指定时间和内容。

    不要忘记重新启动您的 MySQL 服务器以使更改生效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-08
      • 2016-07-11
      • 2017-12-09
      • 1970-01-01
      • 2012-12-04
      • 2013-09-22
      • 1970-01-01
      • 2012-09-21
      相关资源
      最近更新 更多