SQLSTATE [HY000]:一般错误:1298时区未知或不正确:“ UTC”窗口

Bu *_*Fer 0 php mysql utc

在Windows Wamp服务器中设置PHP源代码时出现此错误。

SQLSTATE [HY000]:常规错误:1298未知或不正确的时区:'UTC'

请让我知道如何解决。

谢谢。

Aug*_*gwa 5

您可以通过三种方式解决此问题。

安装时区数据库

mysql_tzinfo_to_sql程序加载在mysql数据库中的时区表。它在具有zoneinfo数据库(描述时区的文件集)的系统上使用。此类系统的示例是Linux,FreeBSD,Solaris和OSX。这些文件的一个可能位置是/ usr / share / zoneinfo目录(在Solaris上为/ usr / share / lib / zoneinfo)。如果您的系统没有zoneinfo数据库,则可以使用第11.6节“ MySQL服务器时区支持”中所述的可下载软件包。

mysql_tzinfo_to_sql可以通过几种方式调用:

shell> mysql_tzinfo_to_sql tz_dir
shell> mysql_tzinfo_to_sql tz_file tz_name
shell> mysql_tzinfo_to_sql --leap tz_file
Run Code Online (Sandbox Code Playgroud)

对于第一个调用语法,将zoneinfo目录路径名传递给mysql_tzinfo_to_sql并将输出发送到mysql程序。例如:

shell> mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
Run Code Online (Sandbox Code Playgroud)

mysql_tzinfo_to_sql读取系统的时区文件并从中生成SQL语句。mysql处理这些语句以加载时区表。

所述第二语法原因mysql_tzinfo_to_sql加载单个时区文件tz_file对应于时区名称tz_name:

shell> mysql_tzinfo_to_sql tz_file tz_name | mysql -u root mysql
Run Code Online (Sandbox Code Playgroud)

如果您的时区需要考虑leap秒,使用第三种语法调用mysql_tzinfo_to_sql,这将初始化the秒信息。tz_file是您的时区文件的名称:

shell> mysql_tzinfo_to_sql --leap tz_file | mysql -u root mysql
Run Code Online (Sandbox Code Playgroud)

运行mysql_tzinfo_to_sql后,最好重新启动服务器,以使其不再继续使用任何以前缓存的时区数据。

来源:https : //dev.mysql.com/doc/refman/5.7/en/mysql-tzinfo-to-sql.html

更新my.cnf文件以使用时区偏移量

default-time-zone = +0:00
Run Code Online (Sandbox Code Playgroud)

从my.cnf文件中删除或注释掉令人反感的声明

# default-time-zone = UTC
Run Code Online (Sandbox Code Playgroud)

这将导致它从操作系统继承时区。