加载 MySQL 时区表

Posted

技术标签:

【中文标题】加载 MySQL 时区表【英文标题】:Load MySQL timezone tables 【发布时间】:2016-09-18 07:02:04 【问题描述】:

尝试,阅读此处的许多相关帖子和 mysql 文档,但找不到解决我的问题的方法。我以 root 身份通过 PUTTY 连接 SSH 并发出以下命令:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

我收到以下错误:

Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it.
Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.

知道怎么解决吗?

【问题讨论】:

【参考方案1】:

这些不是错误。它们是警告,您可以忽略它们。尽管有这些警告,您的时区表仍应被填充。


问题中使用的实用程序是一个与 MySQL 服务器捆绑在一起的脚本,名为 mysql_tzinfo_to_sql。它读取您的 Linux(或 FreeBSD、Solaris 或 macOS)系统的时区数据库,并根据它发现的信息创建 SQL 语句,这将在 MySQL 中加载时区表。

警告是关于实用程序在系统上发现的时区,但它无法识别为包含可用时区信息。

文档also mentions 是您可以使用的预构建文件,但需要注意的是,使用它可能意味着某些时区可能与您系统上的时区不完全匹配......所以如果您正在做时区MySQL 内部和外部的转换,可能存在不一致,因为时区偶尔会改变。

【讨论】:

谢谢。来自主机的另一条注释是“我们的默认设置在从 root 用户运行 MySQL 命令时不需要 MySQL root 密码。因此,以 root 身份登录时不需要“-u root”。” 如果root@localhost 没有密码,这总是正确的,但在这种情况下实际上并没有任何区别。使用它,或者省略它,不会改变任何东西。 此页面是搜索“如何在 mysql 中填充时区表”的人的***谷歌搜索结果。如果可能的话,请分享一些关于如何做的说明,或者至少链接到一个可以做的网站。 原始发帖人将时区数据加载到 MySQL 的命令是正确的。更多信息是available in the MySQL docs。

以上是关于加载 MySQL 时区表的主要内容,如果未能解决你的问题,请参考以下文章

按国家/城市列出的sql时区表

如何更改 MySQL 数据库中的时区

在 JPA MySql 中存储与时区无关的时间的最佳方法

自动填充从工作表到文档的日期并获得不同的时区(谷歌脚本)

在哪里可以获得用于 SQL Server 的简单时区表? [关闭]

在数据库中存储时区的正确方法?