无法识别服务器时区值“ Ostereuropeische Zeit”

时间:2019-12-26 15:16:43

标签: mysql datetime jdbc timezone

我遇到此错误:

“服务器时区值'Osteuropeische Zeit'无法识别或代表多个时区。如果需要,必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更特定的时区值利用时区支持。”

使用的操作系统是Win 10,但已安装为德语版本。我相信这就是问题的根源。我已将显示语言设置为英语,但这没有帮助。

谢谢!

1 个答案:

答案 0 :(得分:1)

MySQL使用zoneinfo names -- based on political subdivisions来命名时区。它们看起来像'Europe/Helsinki''Europe/Athens',而不是通用名称。为什么? zoneinfo尝试同时处理白天和标准时间,这些规则取决于上述政治细分。

所有这些zoneinfo信息都内置于UNIX派生的操作系统中,因此在Linux上运行的MySQL服务器透明地使用这些时区。 Zoneinfo没有内置在Windows中,因此,如果您的MySQL server 在此处运行,则必须自己设置服务器时区查找表with this procedure

您可以通过多种方式设置MySQL默认服务器时区。查找如何执行这些操作。这些是几种方法。

  1. my.cnf, MySQL's configuration file中。
  2. 在JDBC连接字符串上添加类似&serverTimezone=Europe/Helsinki的参数
  3. 建立MySQL连接后,请提供SQL命令SET time_zone='Europe/Helsinki'(或您需要的任何命令)。

您也可以在Java程序中进行设置。查找如何操作。

MySQL的内部TIMESTAMP数据类型以及NOW()之类的函数的值固有地存在于UTC中。但是MySQL会将它们从UTC转换为显示的所选时区,并在存储时将其转换为UTC。

因此,在许多应用程序中(例如WordPress),时区设置是用户首选项。