MySQL 时间与系统时间不同

MySQL 时间与系统时间不同

我遇到了一个问题,MySQL 报告的时间比系统时间晚六分钟。我已验证所有时区设置均正确,但不知道如何解决这六分钟的差异:

mysql> SELECT NOW(),CURDATE(),CURTIME();
+---------------------+------------+-----------+
| NOW()               | CURDATE()  | CURTIME() |
+---------------------+------------+-----------+
| 2015-04-24 16:05:24 | 2015-04-24 | 16:05:24  |
+---------------------+------------+-----------+
1 row in set (0.00 sec)


[root@server]# clock
Fri 24 Apr 2015 03:59:04 PM UTC  -0.860391 seconds

谢谢你!

答案1

我不愿意说显而易见的事情,但是 MySQL在同一系统上运行作为 bash 实例?

您是通过 SSH 连接到服务器的,还是本地 Linux 桌面?您是如何连接到 MySQL 的?

我最近不得不解决这个确切的问题,因此找到了这篇文章。在我们的案例中,开发人员使用别名连接到 MySQL,他不记得 MySQL 实际上运行在与他通过 SSH 连接的主机不同的主机上(也使用别名)。

答案2

我也遇到了同样的问题。

就我而言,服务器的时区设置为 IST,但 mysql 指的是 UTC 时区。

出现此问题的原因是我更改服务器的时区后尚未重新启动 mysql。

服务mysql重启就可以了!

答案3

mysqld 会在启动时尝试确定您的时区。您可以使用以下命令查看这些值:

SELECT @@global.time_zone, @@session.time_zone;

您可以在运行时为每个会话或全局设置时区:

SET GLOBAL time_zone = timezone;

你可以,而且看起来应该在配置文件中设置它:

默认时区='+0:00'

文档说这些是的有效值default-time-zone

  1. 值“SYSTEM”表示时区应该与系统时区相同。

  2. 该值可以作为表示与 UTC 偏移量的字符串给出,例如“+10:00”或“-6:00”。

  3. 该值可以指定为命名时区,例如“Europe/Helsinki”、“US/Eastern”或“MET”。仅当已创建并填充 mysql 数据库中的时区信息表时,才可使用命名时区。

最后,连接到 mysql 的客户端会猜测并向会话提供时区,从而影响一些日期/时间功能,这可能会引起麻烦。

相关内容