我的服务器正在MDT
所以我用了一个来转换EST
SET time_zone = '-5:00'
但是,如何将其切换为EDT
,因为
While `EST` is only valid in winter, while in summer how to change it to `EDT`
我只是尝试使用指定的时区。但我收到了以下错误
#1298 - Unknown or incorrect time zone: 'America/Toronto'
我不明白如何解决这个问题
如何切换
UTC -05 TO UTC-04
答案 0 :(得分:64)
对于Linux,BSD和Mac OS X,如果需要加载时区表,请执行以下操作:
$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot mysql
答案 1 :(得分:11)
由于您使用的是Windows,因此必须将时区描述表导入MySQL服务器。
答案 2 :(得分:4)
使用 WampServer 在 Windows 上为我服务:
更多信息:
“要为MyISAM时区表使用包含.frm,.MYD和.MYI文件的时区包,请下载并解压缩。这些表文件是mysql数据库的一部分,因此您应该将文件放在MySQL服务器数据目录的mysqlsubdirectory中。在执行此操作之前停止服务器并在之后重新启动它“
答案 3 :(得分:1)
您是否尝试过使用zoneinfo名称,例如“America / New_York”而不是缩写(只有一半时间有效)?
理想情况下,您不应该全部使用服务器时区 - 以UTC格式存储日期,然后将其转换为客户端代码中的相应时区。 (这取决于你要存储的内容,请注意。具有时区的用户指定的未来日期/时间值应该以这种方式存储,而不是转换为任何其他时区,以防万一规则在现在和未来的日期/时间之间变化。但是对于机器记录的时间,例如记录,交易等,我肯定会存储UTC。我绝不建议存储“只是本地时间并假设服务器并且客户端具有相同的规则“。)
答案 4 :(得分:0)
仅出于完整性考虑,Mac用户可以在mysql_tzinfo_to_sql
目录中找到/usr/local/mysql/bin
实用程序。
因此,完整的命令将为/usr/local/mysql/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo | ./mysql -p -u root mysql
我花了几个小时来找到该实用程序,上面的路径可能会节省您的时间!
答案 5 :(得分:0)
如果是 Mysql8 ,并且想要设置 EDT 时区'America / New_York',请按照以下步骤操作:
如果您遇到此问题,将遇到致命错误,如下所示:
Fatal error: Illegal or unknown default time zone
然后执行以下步骤:
首先从/etc/my.cnf文件中删除 default-time-zone ='America / New_York'
的条目转到shell(从mysql退出)并运行命令
$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
再次添加行
重启mysql