MySQL:在my.cnf选项文件中设置time_zone

时间:2010-12-30 12:08:29

标签: 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)

是否可以将其放在选项文件中,例如.my.cnf?

当我尝试时,它不起作用。我得到的只是:

mysql: unknown variable 'time_zone=Brazil/East'

7 个答案:

答案 0 :(得分:17)

应该是

default_time_zone=Brazil/East

详细信息:http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_time_zone

  

选项 - 文件格式= default_time_zone

答案 1 :(得分:0)

我不确定Xampp中发生了什么变化,但只有将此行放在适当的位置才能使用此解决方案。相信我,我尝试了很多次,不得不做一个非常彻底的搜索来找到这个解决方案。

default-time-zone = "+00:00"

示例:

read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
default-time-zone = "+00:00" <--- Place here.
log_error = "mysql_error.log"

https://community.apachefriends.org/f/viewtopic.php?f=16&t=47656

此外,如果您打算使用“America / Los_Angeles”,您需要确保使用正确的时区名称填充数据库。我建议使用偏移量。我实际上建议使用UTC作为您的基础,然后根据用户的时区为用户转换您的时间,这将为您节省许多麻烦,让您的数据库保持良好和统一。查看我在下面链接的指南,它非常清楚地解释了我并且我使用了这个系统。有很多方法可以对它进行编码,但采用这种方法可以为您节省很多问题。

http://www.vertabelo.com/blog/technical-articles/the-proper-way-to-handle-multiple-time-zones-in-mysql

答案 2 :(得分:0)

有点晚了,但这可能会有所帮助:

明确设置时区时,请确认您使用的是正确的时区名称,请记住已弃用的许多时区。您可以使用https://en.wikipedia.org/wiki/List_of_tz_database_time_zones进行确认。

在我的情况下,使用MySQL 5.7,在我的mysqld.cnf文件中的[mysqld]下添加时,不推荐使用的时区名称无效。使用新的时区名称,并重新启动mysql服务,工作。

因此,对于用户@kev,使用 America / Sao_Paulo 应该有效,而不是使用 Brazil / East

答案 3 :(得分:0)

对于MAMP,我在$update = gc 'File\path.txt' ForEach ($ADuser in $update) { Add-DistributionGroupMember -Identity All -member $ADuser } 的{​​{1}}下添加了default_time_zone=-03:00

我会为Brazil / East收到以下错误,可能是因为它已被弃用(https://en.wikipedia.org/wiki/List_of_tz_database_time_zones):

[mysqld]

答案 4 :(得分:0)

~/.my.cnf中:

[mysql]
init_command="SET time_zone='Brazil/East'"

答案 5 :(得分:0)

编辑以下内容:

nano /etc/mysql/conf.d/mysql.cnf && systemctl restart mysql ; systemctl status mysql

MySQL.cnf:

[mysql]
default_time_zone=America/Vancouver

有关当前时区格式,请参见此处-> https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

答案 6 :(得分:0)

对于 Windows 10:

转到 C:\ProgramData\MySQL\MySQL Server 8.0 文件夹并以管理员身份打开 my.ini 文件。

滚动到 [mysqld]: 行。

[mysqld] 之后添加以下几行:

#default time-zone
default-time-zone = '<your_time_zone>'

保存文件并从 MySQL80 窗口重新启动 Services 服务。

您可以控制来自

的更改
MySQL Workbench -> Local instance -> Server -> 
Status and System Variables -> System Variables -> Filtered -> time_zone