由于项目部署的时候,两台linux服务器,并且加上数据库,但是后面在程序使用new date()
时候,发现时间比当前时间晚13h,后面排查原因是时区导致的,故修改数据库时区和服务器时区。
修改服务器时区
tzselect命令
使用tzselect
命令设置上海时区Asia/Shanghai。
tzselect
选择对应的 5 9 1 1
修改localtime文件
cp /usr/share/zoneinfo/$主时区/$次时区 /etc/localtime
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
4.将当前时间和日期写入BIOS,避免重启后失效
hwclock -w
timedatectl
# 设置时区
timedatectl set-timezone Asia/Shanghai
#查看时区
timedatectl
修改mysql时区
永久修改时区
通过修改mysql的配置文件my.ini配置或者my.cnf文件
# vim /etc/my.cnf ##在[mysqld]区域中加上
default-time_zone = '+8:00'
# /etc/init.d/mysqld restart ##重启mysql使新时区生效
临时修改时区
> set global time_zone = '+8:00'; ##修改mysql全局时区为北京时间,即我们所在的东8区
> set time_zone = '+8:00'; ##修改当前会话时区
> flush privileges; #立即生效
查看mysql时区
> select curtime(); #或select now()也可以
+-----------+
| curtime() |
+-----------+
| 15:18:10 |
+-----------+
> show variables like "%time_zone%";
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | CST |
| time_zone | SYSTEM |
+------------------+--------+
2 rows in set (0.00 sec)
time_zone说明mysql使用system的时区,system_time_zone说明system使用CST时区
以下图片是修改正确的时区