作者:我的想念穿不透那面墙- | 来源:互联网 | 2023-08-07 19:37
现象背景两台主机:本地是windows系统,服务器是linux系统。两个项目:本地和服务器上分别部署了一个项目。一个数据库:数据库mysql,装在服务器上。两个
现象
两台主机:本地是windows系统,服务器是linux系统。
两个项目:本地和服务器上分别部署了一个项目。
一个数据库:数据库mysql,装在服务器上。两个主机上的项目连的是同一个数据库。
同一个页面在两个项目中的展示时间不一致:
本地:
服务器:
数据表中数据:
本地项目连服务器数据库,页面显示时间与数据库一致。
服务器项目连服务器数据库,页面显示时间比数据库快16小时。
解决办法
1.查看服务器时间和时间:date -R
[root@host231 ~]# date -R
Tue, 06 Feb 2018 12:35:48 -0800
-0800表示西八区,是美国旧金山所在的时区,北京是东八区(+0800)
2.修改时区:cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@host231 ~]
Tue, 06 Feb 2018 12:35:48 -0800
[root@host231 ~]
cp: overwrite ‘/etc/localtime’? y
[root@host231 ~]
Wed, 07 Feb 2018 04:36:11 +0800
3.修改系统时间:date -s “YYYY-MM-DD hh:mm:ss”
[root@host231 ~]# date -R
Wed, 07 Feb 2018 04:46:21 +0800
[root@host231 ~]# date -s "20180206 16:49:00"
Tue Feb 6 16:49:00 CST 2018
[root@host231 ~]# date -R
Tue, 06 Feb 2018 16:49:02 +0800
MySQL 时区默认是服务器的时区。可以通过以下命令查看
| system_time_zone | PST |
2 rows in set (0.01 sec)
可以通过修改my.cnf在 [mysqld] 之下加default-time-zOne=timezone来修改时区。如:default-time-zOne= ‘+8:00’改了记得重启msyql。
注意一定要在 [mysqld] 之下加 ,否则会出现 unknown variable ‘default-time-zOne=+8:00’
另外,也可以通过命令 set time_zOne= timezone比如北京时间(GMT+0800)set time_zOne= ‘+8:00’;
1 row in set (0.00 sec)
mysql> set time_zOne= '+8:00'; Query OK, 0 rows affected (0.02 sec)
1 row in set (0.00 sec)
然后重启mysql
至此,数据表中新增的数据再本地和服务器中系统展示的时间一致了。
虽然之前新增的的数据,在不同系统中展示还是不一样。