有一个装有 MySQL 服务器的 FreeBSD 盒子。
系统时间正确 - 对于丹麦(欧洲/哥本哈根)来说目前是夏令时。
# date
Fri Jun 17 12:09:56 CEST 2011
MySQL 服务器的时区设置为 SYSTEM
mysql> show variables like 'time_zone';
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| time_zone | SYSTEM |
+---------------+--------+
1 row in set (0.00 sec)
时间比现在晚了2个小时
mysql> SELECT NOW();
+---------------------+
| NOW() |
+---------------------+
| 2011-06-17 10:12:24 |
+---------------------+
1 row in set (0.00 sec)
我怎样才能使它们同步?
更新
该盒子还使用 NTP 同步。
/etc/rc.conf
ntpd_enable="YES"
ntpd_sync_on_start="YES"
答案1
在我看来,MySQL 报告的是 UTC,而 date 报告的是您的本地时间。尝试:
date -u
这与 MySQL 匹配吗?
答案2
(重新)配置你的 TZ
tzsetup
答案3
我发现这是正确答案。
/etc/my.cnf
在 [mysqld] 部分添加以下行并重新启动:
default-time-zone='Europe/Copenhagen'
现在MySQL时间显示正确。
mysql> SELECT NOW();
+---------------------+
| NOW() |
+---------------------+
| 2011-06-21 13:26:40 |
+---------------------+
1 row in set (0.00 sec)