mysql8.0.13修改默认时区_mysql修改默认时区

# mysql修改默认时区

> 进行mysql操作时,发现 `gmt_modified` 字段 ON UPDATE CURRENT\_TIMESTAMP 时,自动取值的时间要晚于系统时间 8 个小时。 一看便知是时区的问题。

## 1. 查看 Mysql 系统时区

```

mysql> show variables like '%time_zone%';

+------------------+--------+

| Variable_name | Value |

+------------------+--------+

| system_time_zone | UTC |

| time_zone | SYSTEM |

+------------------+--------+

2 rows in set (0.01 sec)

```

`UTC` 是协调世界时\(Universal Time Coordinated\)英文缩写, 北京时间比UTC时间早8小时。

`CST`可以同时代表如下 4 个不同的时区:

Central Standard Time \(USA\) UT-6:00

Central Standard Time \(Australia\) UT+9:30

China Standard Time UT+8:00

Cuba Standard Time UT-4:00

因此只需要把Mysql的时区改成 `China Standard Time UT+8:00` 即可

# 2. 修改时区

### 2.1普通安装方式\(未验证\)

```

vim /etc/mysql/my.cnf

# 文件末尾添加时区

default-time-zone = '+08:00'

# 重启服务即可

servicer mysql restart

```

### 2.2 docker安装方式

mysql的docker官方镜像默认没有使用 CST 时区,所以会造成时间不准的问题,

修复办法:

```

docker exec -it mysql_container bash

echo "Asia/Shanghai" > /etc/timezone

dpkg-reconfigure -f noninteractive tzdata

可以看到类似如下输出:

Current default time zone: 'Asia/Shanghai'

Local time is now: Wed Oct 24 19:44:01 CST 2018.

Universal Time is now: Wed Oct 24 11:44:01 UTC 2018.

exit

docker restart mysql_container

```

重启后就会发现 时间恢复正常了

```

mysql> show variables like '%time_zone%';

+------------------+--------+

| Variable_name | Value |

+------------------+--------+

| system_time_zone | CST |

| time_zone | SYSTEM |

+------------------+--------+

2 rows in set (0.01 sec)

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值