mysql_tzinfo_to_sql-在加载时区表和其他问题后更新它们

mysql_tzinfo_to_sql-在加载时区表和其他问题后更新它们,mysql,timezone,zoneinfo,Mysql,Timezone,Zoneinfo,我只是使用mysql_tzinfo_to_sql将zoneinfo数据库加载到mysql中。它们都是进口的 [root@db ~]# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql mysql 我有些问题似乎找不到答案: time\u zone\u name中的名称是否与PHP中使用的名称相同?我假设PHP使用相同的/usr/share/zoneinfo信息,因此名称也会相同,对吗 它提到,当时区数据发生变化时,需要时不时地重新填充这些表。这是

我只是使用mysql_tzinfo_to_sql将zoneinfo数据库加载到mysql中。它们都是进口的

[root@db ~]# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql mysql
我有些问题似乎找不到答案:

  • time\u zone\u name
    中的名称是否与PHP中使用的名称相同?我假设PHP使用相同的
    /usr/share/zoneinfo
    信息,因此名称也会相同,对吗
  • 它提到,当时区数据发生变化时,需要时不时地重新填充这些表。这是否是通过
    yum
    updates更新tzdata的时候?tzdata是我的
    /usr/share/zoneinfo
    信息吗
  • 如果以上是真的,tzdata将更新,我需要重新填充我的表。。。我该怎么做?我可以运行
    [root@db~]#mysql_tzinfo_to_sql/usr/share/zoneinfo | mysql
    又来了?该命令将覆盖当前存在的信息,还是需要在执行此操作之前手动删除所有表项

感谢您提供上述信息。到目前为止,PHP中使用的时区名称似乎是匹配的,但除了一些测试之外,我没有进一步研究它。至于最后两个。。。我只是想赶在前面,这样,如果/当表需要更新时,我就不会有问题。

MySQL和您的操作系统都使用来自的时区

在许多Linux发行版上,它们来自
tzdata
包发行版,该发行版将它们安装到
/usr/share/zoneinfo

所以,是的,它们都是一样的

关于MySQL时区表,他说:

如果您的系统有自己的zoneinfo数据库,则在更新zoneinfo数据库时重新加载MySQL时区表


因此,是的-只要在更新到最新的tzdata软件包时再次运行该命令即可。

再次运行该命令将覆盖其中的内容?那些表中已经有数据了吗?你在问这个命令是否是幂等的。是的,应该是。至少,文件中没有说你必须首先清除它们。试着运行两次,看看会发生什么。:)如果您真的想进行实验,请先安装一个较旧的tzdata。然后更新它并再次运行。在中间和之后,尝试一些
tz_convert
语句,并观察差异。您可以查看tzdata发行说明,了解每个版本的新增功能。