docker mysql 容器时间慢8个小时快速解决

   公司之前的服务器是使用的Centos 6 ,是刚来公司的时候老大让我安装的。然后再Centos 6上面安装了docker和mysql容器作为开发使用的数据库服务器。当时并没有同步网络时钟,造成了时间和本地不是很同步的问题。由于每周五需要关闭服务器,手动关闭服务器太麻烦,就设置了自动关机。设置过自动关机之后,发现没到周五早上来了之后就发现服务器已经自动关机了,另外一台服务器很正常,就查看了时间,才发现问题。没有想到就这样子让这个问题浮现出来了。

   定时任务可以使用Centos自带的定时任务,使用cron表达式,以下是常用的cron表达式基本格式:

# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
定时任务的每段为:分,时,日,月,周,用户,命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

*:表示任意时间都,实际上就是“每”的意思。可以代表00-23小时或者00-12每月或者00-59分
-:表示区间,是一个范围,00 17-19 * * * cmd,就是每天17,18,19点的整点执行命令
,:是分割时段,30 3,19,21 * * * cmd,就是每天凌晨3和晚上19,21点的半点时刻执行命令
/n:表示分割,可以看成除法,*/5 * * * * cmd,每隔五分钟执行一次

   crontab基本操作:

crontab -u //设定某个用户的cron服务
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务
crontab -i //打印提示,输入yes等确认信息

常用cron表达式:

30 21 * * * /etc/init.d/nginx restart             //每晚的21:30重启 nginx。
45 4 1,10,22 * * /etc/init.d/nginx restart        //每月1、 10、22日的4 : 45重启nginx。
10 1 * * 6,0 /etc/init.d/nginx restart            //每周六、周日的1 : 10重启nginx。
0,30 18-23 * * * /etc/init.d/nginx restart        //每天18 : 00至23 : 00之间每隔30分钟重启nginx。
0 23 * * 6 /etc/init.d/nginx restart              //每星期六的11 : 00 pm重启nginx。
* */1 * * * /etc/init.d/nginx restart             //每一小时重启nginx
* 23-7/1 * * * /etc/init.d/nginx restart          //晚上11点到早上7点之间,每 隔一小时重启nginx
0 11 4 * mon-wed /etc/init.d/nginx restart        //每月的4号与每周一到周三 的11点重启nginx
0 4 1 jan * /etc/init.d/nginx restart             //一月一号的4点重启nginx
*/30 * * * * /usr/sbin/ntpdate 210.72.145.20      //每半小时同步一下时间

docker 基本操作

关于docker的操作可以查看docker基本操作,本文就不再做叙述

# 通过命令进入容器内部
[root@developer ~]#  docker exec -it 容器id或者容器名称 bash
root@容器id:/#

# 准备修改mysql配置文件:这个时候发现 vim命令提示 command not fount 因为首次使用容器,并灭有安装vim 命令 bash: vi: command not found。可以通过以下两个命令安装 

apt-get update 

apt-get instal vim
root@2dd69401155b:/# vim /etc/mysql/mysql.conf.d 

root@2dd69401155b:/etc/mysql/mysql.conf.d# vi /etc/mysql/mysql.conf.d/mysqld.cnf 

可以看到以下界面,加入下面一句话,即可解决时间问题

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

然后通过重启mysql docker容器即可。

通过navicate 连上数据库:

查看mysql当前时区:

show variables like '%time_zone%';

 

通过select now() 查看mysql当前时间。

https://blog.csdn.net/weixin_36146358/article/details/101421047

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值