提问者:小点点

服务器时区值“Ostereuropeische Zeit”无法识别[重复]


我有这个错误:

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

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

谢谢大家!


共1个答案

匿名用户

MySQL使用zoneinfo名称——基于政治分区——来命名时区。这些看起来像< code >“欧洲/赫尔辛基”或< code >“欧洲/雅典”而不是通用名称。为什么?zoneinfo试图处理夏令时和标准时间,这些规则取决于所述的政治分区。

所有这些zoneinfo都内置在UNIX衍生的操作系统中,因此在Linux上运行的MySQL服务器透明地使用这些时区。Zoneinfo没有内置在Windows中,因此如果您的MySQL服务器在那里运行,您必须使用此过程自行设置服务器时区查找表。

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

  1. 在my.cnf,MySQL的配置文件。
  2. 在您的JDBC连接字符串上添加一个参数,如

您也可以在 Java 程序中进行设置。查看如何做到这一点。

MySQL的内部TIMESTAMP数据类型,以及像NOW()这样的函数的值,本质上是UTC的。但是MySQL将它们从UTC转换为您选择的时区,并在存储时将它们转换为UTC。

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