问题排查
- 进入docker
docker exec -it mariadb /bin/sh
- 查看容器时间
#date [-R] #查看主机时间
#timedatectl #查看主机时区
- 更改时区
# tzselect #选择时区,4 选择亚洲 > 9 选择中国时区 -> 1选择北京时间 -> 1 选择Yes
# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #上海时间
或者
# rm /etc/localtime
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #上海时间
- 修改显示时间
date #查看当前系统时间
yum install -y ntpdate #安装ntpdate程序
ntpdate cn.pool.ntp.org #更新系统时间
date #再次查看当前系统时间
修改mariaDB 时间
- 查看mariadb时区和当前时间
mysql -uroot -proot
mysql>> show variables like "%time_zone%";
mysql>> select now();
- 临时修改时区
mysql>> set global time_zone = '+8:00'; ##修改mysql全局时区为北京时间,即我们所在的东8区
mysql>> set time_zone = '+8:00'; ##修改当前会话时区
mysql>> flush privileges; #立即生效
- 永久生效但要重启
修改/etc/my.cnf的[mysqld]区域中加上,重启mariadb使新时区生效
#vi /etc/my.cnf
[mysqld]
default-time_zone = '+8:00'
#systemctl restart mysql
4.docker的时区配置命令
#进入控制台
docker exec -it mariadb /bin/bash
#修改默认时区,根据提示选择区域和城市
#dpkg-reconfigure tzdata
#需要重新启动
docker restart mariadb
或者利用 docker cp ./my.cnf mariadb:/etc/mysql/my.cnf
的方式将配置文件覆盖,重启后依然生效