我意识到我在数字海洋中的一些液滴在操作系统和MySQL之间有不同的时区。默认情况下,我已经通过tzselect
将所有vms配置到巴西时区(America/圣保罗),并且假设MySQL在系统中使用默认时区。
因此,当我输入当前时间戳时,我从CentOS获得如下信息:
date
Thu Jun 9 09:43:03 BRT 2016
来自MySQL:
mysql> select current_timestamp;
+---------------------+
| current_timestamp |
+---------------------+
| 2016-06-09 12:45:57 |
+---------------------+
1 row in set (0.00 sec)
mysql>
阅读MySQL 5.5的文档时,我可以选择使用时区作为字符串,例如'America/Sao_Paulo'
,然而,CentOS 6.5附带了MySQL 5.1,而且它没有相同的选项,只使用小时( +3:00 )……我确信我不应该担心MySQL的日期/时间,因为我已经在系统上配置了它。
我使用tzselect
命令设置巴西时区,认为MySQL将假定此配置。重新启动后,我意识到系统删除了我对tzselect的信任,为了防止这种情况,我将这一行放在/etc/rc.local
上:
ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime
即使这样,我也意识到现在有些vms和BRT...and一样,我真的不知道如何配置我所有的服务器,至少40台机器,以同样的方式配置。
有人能帮助我解释如何正确地设置系统a的时区(同时也是MySQL的时区)吗?
系统: CentOS 6.5 x64 MySQL: 5.1 (默认)
下面是@lese命令:
mysql> SELECT @@global.time_zone, @@session.time_zone;
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| SYSTEM | SYSTEM |
+--------------------+---------------------+
1 row in set (0.00 sec)
mysql> select current_timestamp;
+---------------------+
| current_timestamp |
+---------------------+
| 2016-06-09 14:31:19 |
+---------------------+
1 row in set (0.00 sec)
mysql> exit
Bye
$ date
Thu Jun 9 11:31:22 BRT 2016
以及/etc/sysconfig/clock
文件中的机器时间:
[root@xxxx]# cat /etc/sysconfig/clock
ZONE=Etc/UTC
诚挚的问候。
发布于 2019-04-30 13:27:45
我讨厌旧的帖子,但这似乎是唯一合适的地方发布这些信息。在CentOS 7中,默认的MariaDB 10设置(使用CentOS标准rpms)对时区文件定位错误。我们对依赖MySQL获取时区信息的应用程序存在问题。无论我们在应用程序中使用了什么设置,它们总是返回UTC时区时间。
这是:
mysql_tzinfo_to_sql /usr/share/zoneinfo/right |mysql -u root mysql -p
立即纠正了这个问题。不需要重新启动!我清理了隐藏室等好措施..。
https://unix.stackexchange.com/questions/288701
复制相似问题