在一台服务器上,当我运行:
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2009-05-30 16:54:29 |
+---------------------+
1 row in set (0.00 sec)
在另一台服务器上:
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2009-05-30 20:01:43 |
+---------------------+
1 row in set (0.00 sec)
如果符合您的场景,您可以通过更改操作系统时区轻松做到这一点。
在Ubuntu系统中,使用此命令可以列出时区
sudo timedatectl list-timezones
如果需要修改操作系统的时区,需要同时执行该命令
timedatectl set-timezone America/New_York
检查操作系统时区,执行
date
然后重新启动MySQL
sudo service mysql restart
要在MySQL中检查时区,请登录并运行
SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);
如果使用指定时区会导致错误:
mysql> SET GLOBAL time_zone = "Asia/Bangkok";
ERROR 1298 (HY000): Unknown or incorrect time zone: 'Asia/Bangkok'
你可以试试:
mysql_tzinfo_to_sql tz_file tz_name | mysql -u root -p mysql
然后:
SET GLOBAL time_zone = "Asia/Bangkok";
SET time_zone = "+07:00";
SET @@session.time_zone = "+07:00";
检查一下现在几点了:
SELECT NOW();
裁判:
https://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html#time-zone-installation