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

时间:2017-03-03 22:24:50

标签: php mysql utc

我在Windows Wamp服务器中设置PHP源代码时遇到此错误。

  

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

请让我知道如何解决。

感谢。

1 个答案:

答案 0 :(得分:4)

您有三种方法可以解决此问题。

  

安装时区数据库

mysql_tzinfo_to_sql 程序在mysql数据库中加载时区表。它用于具有zoneinfo数据库的系统(描述时区的文件集)。此类系统的示例是Linux,FreeBSD,Solaris和OS X.这些文件的一个可能位置是/ 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

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

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

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

第二种语法导致 mysql_tzinfo_to_sql 加载与时区名称tz_name对应的单个时区文件 tz_file

shell> mysql_tzinfo_to_sql tz_file tz_name | mysql -u root mysql

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

shell> mysql_tzinfo_to_sql --leap tz_file | mysql -u root mysql

运行 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
  

从my.cnf文件中删除或注释违规声明

# default-time-zone = UTC

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

相关问题