emx*_*emx 15 mysql timezone my.cnf
在MySQL中,您可以设置一个名为time_zone的会话变量来更改时区.这在查看来自其他国家/地区的时间戳时非常有用.这是一个例子:
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2010-12-30 18:59:18 |
+---------------------+
1 row in set (0.00 sec)
mysql> set time_zone='Brazil/East';
Query OK, 0 rows affected (0.00 sec)
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2010-12-30 09:59:29 |
+---------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
是否可以将其放在选项文件中,例如.my.cnf?
当我尝试时,它不起作用.我得到的只是:
Run Code Online (Sandbox Code Playgroud)mysql: unknown variable 'time_zone=Brazil/East'
ajr*_*eal 17
它应该是
default_time_zone=Brazil/East
Run Code Online (Sandbox Code Playgroud)
详细信息:http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_time_zone
选项文件格式= default_time_zone
我不确定 Xampp 中发生了什么变化,但只有当您将此行放在正确的位置时,此解决方案才有效。相信我,我尝试了很多次,并且必须进行相当彻底的搜索才能找到这个解决方案。
default-time-zone = "+00:00"
Run Code Online (Sandbox Code Playgroud)
例子:
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
default-time-zone = "+00:00" <--- Place here.
log_error = "mysql_error.log"
Run Code Online (Sandbox Code Playgroud)
https://community.apachefriends.org/f/viewtopic.php?f=16&t=47656
另外,如果要使用“America/Los_Angeles”,您需要确保数据库中填充了正确的时区名称。我建议使用偏移量。我实际上建议使用 UTC 作为您的基础,然后根据用户的时区从该时间点转换您的时间,这将为您节省以后的许多麻烦,并保持数据库的良好和统一。查看我在下面链接的指南,它为我解释得非常清楚,并且我使用了这个系统。有很多方法可以对其进行编码,但是采用这种方法可以避免很多问题。