更改MySQL中的连接时区
我的服务器正在更改MySQL中的连接时区,mysql,timezone,Mysql,Timezone,我的服务器正在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' 我不明白如何解决这个问题 我怎样才能转
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至UTC-04
您是否尝试过使用zoneinfo名称,例如“America/New_York”,而不是缩写(仅在一半时间内有效)
理想情况下,您不应该在所有课程中都使用服务器时区-以UTC存储日期,然后在客户端代码中将其转换为适当的时区。(请注意,这取决于您存储的内容。由具有时区的用户指定的未来日期/时间值应以这种方式存储,而不是转换为任何其他时区,以防规则在现在和未来日期/时间之间发生更改。但对于计算机记录的时间瞬间,例如用于日志记录、事务处理等,我肯定会存储UTC。我决不会建议存储“仅本地时间,并假设服务器和客户端具有相同的规则”。因为您使用的是Windows,所以您必须将时区描述表导入MySQL服务器
对于Linux、BSD和Mac OS X,如果需要加载时区表,请执行以下操作:
$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot mysql
对于在Windows上使用WampServer的我来说:
- 从下载POSIX版本
- 解开它
- 将所有文件放入wamp mysql数据中:C:\wamp\bin\mysql\mysql5.7.11\data\mysql
- 重新启动wamp
为了完整起见,Mac用户可以在
/usr/local/mysql/bin
目录中找到mysql\u tzinfo\u to\u sql
实用程序。因此,完整的命令将是
/usr/local/mysql/bin/mysql_tzinfo_to_sql/usr/share/zoneinfo |/mysql-p-u root mysql
我花了几个小时来寻找实用程序,上面的路径可能会拯救你的 如果Mysql8
Fatal error: Illegal or unknown default time zone
然后执行以下步骤:
$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
我尝试设置时区='America/NewYork',但它不起作用,我生成错误#1298-未知或不正确的时区:'America/NewYork'@gowri:在不知道如何将数据插入数据库(例如,哪种语言/平台)的情况下,很难知道如何在UTC中存储数据。至于有效时区——我认为这取决于操作系统;你用的是哪种操作系统?我用的是php,oc是windows xp,服务器wamp@gowri:如果您能找到纽约的Windows时区ID,您可能会发现它有效。我不是马上就知道的。至于UTC。。。您正在尝试插入当前时间吗?如果是,请使用UTCTIMESTAMP()。或者,只需将时区设置为“UTC”就可以满足您的需要…@MartinZvarík:不,如果您存储的是本地时间,那么确实是这样。假设你在伦敦,在当地时间记录这两项交易:“2019-10-27T01:45:00”和“2019-10-27T01:15:00”。那些时间你怎么点?毫无疑问,你不能这样做,因为由于DST转换,2019年10月27日伦敦的凌晨1点到凌晨2点之间的时间发生了两次。出于完全相同的原因,您也无法明确地将其转换为另一个时区。这只是时区复杂的一个方面。还有很多,其中大部分是我在创作NodaTime时学到的……这也是我为解决这个问题所做的。下面的页面描述了这个过程:我认为你应该在
-uroot
之后添加-p
选项,以便使用根密码。这不仅限于Windows,在Ubuntu上,我还必须加载时区表,如这里所述。我的env(OS X,Mysql 5.6.13)给了我一个模糊的错误“错误1406(22001)第38916行:第1行“缩写”列的数据太长。我通过运行mysql\u tzinfo\u to_sql/usr/share/zoneinfo | sed的/Local时区必须设置——请参阅zic手册页/(错误)/“| mysql-uroot mysql
(另请参阅)这对我很有效。在Ubuntu上,my.cnf位于/etc/mysql/my.cnf
,使用sudo服务mysql restart重新启动
,使用选择@@global.time\u zone确认代码>