MySQL时间不同于系统时间

我有一个MySQL报告的时间比系统时间晚6分钟的问题。 我已经validation所有我的时区设置是正确的,但不知道如何排查六分钟的差异:

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 

谢谢!

mysqld尝试在启动时确定你的时区。 你可以看到这些值:

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

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

 SET GLOBAL time_zone = timezone; 

你可以,看来应该把它设置在configuration文件中:

默认时区=“+ 0:00”

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

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

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

  3. 该值可以作为命名时区给出,如“欧洲/赫尔辛基”,“美国/东部”或“MET”。 命名时区只有在创build和填充mysql数据库中的时区信息表时才能使用。

最后,连接mysql的客户端正在猜测并提供时区给会话,从而影响了一些date/时间函数,这会引起麻烦。

我讨厌说明显而易见的,但MySQL是运行在与 bash实例相同的系统上的吗?

你正在SSH服务器或是本地Linux桌面? 你如何连接到MySQL?

我最近不得不解决这个确切的问题,从而find这个职位。 在我们的例子中,开发者使用别名来连接到MySQL,他不记得MySQL实际上是在一个不同的主机上运行,​​而不是他正在进入的(也有一个别名)。