Mysql:如何诊断和纠正错误的时区

时间:2011-09-16 04:53:22

标签: mysql timezone

在我的服务器中,我从命令行获得以下内容:

]$ date
Fri Sep 16 13:47:02 JST 2011

哪个是正确的。

在mysql中,我有以下内容:

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2011-09-16 04:50:21 |
+---------------------+
1 row in set (0.00 sec)

mysql> SELECT @@global.time_zone, @@session.time_zone;
+--------------------+---------------------+
| @@global.time_zone | @@session.time_zone |
+--------------------+---------------------+
| SYSTEM             | SYSTEM              |
+--------------------+---------------------+
1 row in set (0.00 sec)

因此,它设置为系统时间,但为什么不显示同一时间?

2 个答案:

答案 0 :(得分:2)

您需要在更改System ..的时区后重新启动mysqld。

MySQL的全球时区需要系统的时区。当您更改系统的任何此类属性时,只需重新启动Mysqld。

就是这样。

答案 1 :(得分:0)

您的查询以UTC格式返回值,但是从命令行输出您的系统是在JST中。由于变量返回SYSTEM,我建议您的配置可能已将系统识别为UTC。按照How do I make MySQL's NOW() and CURDATE() functions use UTC?的建议查看您的my.cnf。