docker中mysql时间与系统时间不一致问题

最近在Docker中装mysql时,发现数据库时间与系统时间相差8个小时。

linux服务器时间:

进入mysql,输入date如下

发现两者时区不同。因为mysql容器是在docker中安装的,所以mysql的时间不对应该是宿主docker导致的。

查询资料发现,docker的默认时区是0区,其实这会对安装的容器造成不少麻烦,比如执行日志的记录不准确等。

有如下两种方式解决:

方法一:复制主机的localtime

docker cp /etc/localtime [容器ID或者NAME]:/etc/localtime

注意:因为时区问题可能上面命令会报下面错误

Error response from daemon: Error processing tar file(exit status 1): 

invalid symlink "/usr/share/zoneinfo/UCT" -> "../usr/share/zoneinfo/Asia/Shanghai"

查看这个文件

发现这个文件引用了一个地址

解决方案:切换命令

docker cp /usr/share/zoneinfo/Asia/Shanghai[容器ID或者NAME]:/etc/localtime

然后重启容器

docker  restart [容器ID或者NAME]

方法二:共享主机的localtime

创建容器的时候指定启动参数,挂载localtime文件到容器内

docker run --name -v /etc/localtime 容器id:/etc/localtime:ro ....

两者时区不一致的问题就解决了。

到此这篇关于docker中mysql时间与系统时间不一致问题的文章就介绍到这了,更多相关docker时间不一致内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • docker中mysql时间与系统时间不一致问题

    最近在Docker中装mysql时,发现数据库时间与系统时间相差8个小时. linux服务器时间: 进入mysql,输入date如下 发现两者时区不同.因为mysql容器是在docker中安装的,所以mysql的时间不对应该是宿主docker导致的. 查询资料发现,docker的默认时区是0区,其实这会对安装的容器造成不少麻烦,比如执行日志的记录不准确等. 有如下两种方式解决: 方法一:复制主机的localtime docker cp /etc/localtime [容器ID或者NAME]:/e

  • 解决docker中mysql时间与系统时间不一致问题

    最近在Docker中装mysql时,发现数据库时间与系统时间相差8个小时. linux服务器时间: 进入mysql,输入date如下 发现两者时区不同.因为mysql容器是在docker中安装的,所以mysql的时间不对应该是宿主docker导致的. 查询资料发现,docker的默认时区是0区,其实这会对安装的容器造成不少麻烦,比如执行日志的记录不准确等. 有如下两种方式解决: 方法一:复制主机的localtime docker cp /etc/localtime [容器ID或者NAME]:/e

  • docker中mysql初始化及启动失败问题解决方案

    最近做项目,遇到这样问题,docker 中的mysql 不能启动,经过上网查资料,终于解决了这个问题,这里记录下,也许还能帮助到大家, 在docker中有一个mysql服务,其数据文件是挂在在主机外面的文件,在docker中的root有访问该数据文件的权限,但是docker中mysql访问数据文件的时候提示权限不足,于是只有以root用户来启动mysql了. 数据初始化: mysql_install_db --user=root --explicit_defaults_for_timestamp

  • C++设置系统时间及系统时间网络更新的方法

    本文实例讲述了C++设置系统时间及系统时间网络更新的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: //根据返回的时间设置系统时间 void setTimeFromTP(ULONG ulTime) {      FILETIME ft;      SYSTEMTIME st;        //将基准时间转换成windows文件时间      st.wYear = 1900;      st.wMonth = 1;      st.wDay = 1;      st.wHo

  • docker中mysql开启日志的实现步骤

    目录 1.查看安mysql容器状态 2.进入容器内部 3.登录mysql数据库 4.查看binlog日志是否开启,查看后关闭mysql 5.编辑配置文件开启binlog,设置log文件 6.退出容器 7.重启mysql容器,且查看是否启动成功 8.查看binlog 日志状态是否开启 9.查看日志 1.查看安mysql容器状态 docker ps 2.进入容器内部 docker exec -it 4ae9238c176a /bin/bash 3.登录mysql数据库 mysql -uroot -p

  • asp.net中页面显示当前系统时间附图

    复制代码 代码如下: <p class="time">当前系统时间:<script type="text/javascript"> today = new Date(); function initArray() { this.length = initArray.arguments.length for (var i = 0; i < this.length; i++) this[i + 1] = initArray.argument

  • 关于ftp下显示的时间和系统时间不一致的解决方法

    修改也非常简单: vi /etc/vsftpd/vsftpd.conf 在最后加入一行: use_localtime=YES 存盘后,重启vsftpd: service vsftpd restart

  • Shell实现系统时间和BIOS时间同步校准脚本分享

    该脚本主要是从定义好的NTP服务器列表获取服务器地址进行同步,如果第一个不成功,会继续换下一个地址进行同步!不完善之处还请指出! 复制代码 代码如下: #!/bin/bash # NTP网络时间校正脚本 # 奔跑 #NTP服务器数组列表 ntpServer=( [0]=ntp.fudan.edu.cn [1]=asia.pool.ntp.org [2]=210.72.145.44 [3]=133.100.11.8 [4]=ntp.sjtu.edu.cn [5]=time.scau.edu.cn

  • python脚本设置系统时间的两种方法

    本文为大家分享了两种python脚本设置系统时间的方法,供大家参考,具体内容如下 第一种方法,使用Python设置系统时间,即给系统校时 #电脑时间用了一段时间后,系统时间不准了,想更新一下 #在windows里面,更新系统时间,时常失败,而且速度很忙. #在网上拷贝的代码,发现很好用,比windows自带的实现要快. #-*- coding:utf-8 -*- import socket import struct import time import win32api TimeServer

  • ubuntu下在docker中安装mysql5.6 的方法

    1.安装mysql5.6 docker run mysql:5.6 等所有项目都是Download complet 安装完毕 5.6: Pulling from library/mysql 10a267c67f42: Pull complete c2dcc7bb2a88: Pull complete 17e7a0445698: Pull complete 9a61839a176f: Pull complete d4657fda01d9: Pull complete c5278a445e5d: P

随机推荐