【问题标题】:Mysql: How to diagnosis and correct wrong timezoneMysql:如何诊断和纠正错误的时区
【发布时间】:2011-11-18 09:53:04
【问题描述】:

在我的服务器中,我有以下命令行:

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

那么,设置为系统时间,但是为什么显示不一样呢?

【问题讨论】:

标签: mysql timezone


【解决方案1】:

你只需要修改系统时区后重启mysqld..

MySQL 的 Global time zone 取 System.timezone 的时区。当你改变系统的任何此类属性时,你只需要重新启动 Mysqld。

就是这样。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 感谢您的回复。 my.cnf 中没有指定时区。那么,是否只需设置:[mysqld_safe] timezone = JST 并重新启动?
    • 您也可以在运行时更改它。在此处查看文档。 dev.mysql.com/doc/refman/5.5/en/time-zone-support.html
    • 如果需要,我有 root 访问权限,但不确定如何在 Mysql 中获取 SUPER priv。
    猜你喜欢
    • 2016-08-16
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多