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

Mysql:如何诊断和纠正错误时区,mysql,timezone,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)

在我的服务器中,我从命令行执行以下操作:

]$ 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)

因此,它被设置为系统时间,但为什么不显示相同的时间呢?

您的查询返回的是UTC值,但从命令行输出来看,您的系统是JST。由于变量返回系统,我建议您的配置可能已将系统标识为UTC。按照这里的建议查看您的my.cnf

更改系统时区后,只需重新启动mysqld即可

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


就这样。

感谢您的回复,这可能是重复的。my.cnf中未指定时区。那么,这只是设置:[mysqld_safe]timezone=JST并重新启动的问题吗?您也可以在运行时更改它。在这里查看文档。如果需要,我有根访问权限,但不知道如何在Mysql中获得超级priv。