前一阵子有一台服务器,mysql的时间比北京时间晚了8个小时。我知道是时区的问题,但是不知道为什么弄成这样,宿主机没有问题,后来一看mysql的docker,时区是错的。

mybatis-plus打印的sql脚本中,包含时间参数的,都被强制减掉了8个小时,我一开始还以为是java方面的问题,原来是docker时区没有设置正确。mybytis-plus也是等数据库执行了才把SQL语句打印出来的,问题根源在数据库的微服务中!

看了docker用了什么版本 cat /etc/issue,原来用的是debian 9,不熟悉,加上docker各种命令不安装,非常难弄。

查看时区 date -R,果然不是北京时间。

千辛万苦安装了ntpdate,却提示 Can't adjust the time of day: Operation not permitted,修改时间也没有权限。因为docker也算是虚拟机吧,不能修改。

最后发现用宿主机的时间配置文件复制到容器就好了,真是笨,摸索了一两个小时。。。

docker cp /usr/share/zoneinfo/Asia/Shanghai mysql:/etc/local   

mysql时间正确了,但是查询的时候时间还是少了8个小时,这时候我才想到,另外一个微服务的容器里面的时区会不会也是错的?

2019-08-19 00:37:30

熬到半夜了,也不顾头发快掉光了,继续研究,打开神器 wireshark 然后输入tcp.port==3306进行过滤,请求就出来了。尴尬的是我抓包看到的SQL语句就是减少了8个小时的。我好纳闷,连别的mysql服务器没有问题啊,怎么连这个mysql服务器就有问题了呢?虽然我知道就是这台mysql服务器的问题,但我还不明确具体问题出在哪。后来看到wireshark捕获到的一堆请求,我才想到,在我的 Java 服务启动时,spring boot 会去和mysql数据库建立联系,这时候就会获取mysql的时区,所以最根本的问题就是mysql的时区设置了!

虽然mysql容器里面的操作系统时区改了,但是我忘记了修改mysql的时区,所以show variables like '%time_zone%'查询出来是这样的:

Variable_name        Value
system_time_zone    CST
time_zone               SYSTEM

想想自己真是蠢货啊。容器里面改不了,只好在宿主机改了,再复制进去。

[root@localhost ~]# docker cp mysql:/etc/mysql/my.cnf ./my.cnf
[root@localhost ~]# vim my.cnf
[root@localhost ~]# docker cp my.cnf mysql:/etc/mysql/my.cnf
[root@localhost ~]# docker restart mysql
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links= # Custom config should go here
!includedir /etc/mysql/conf.d/ default-time-zone = '+8:00'

设置后,重启mysql容器,docker restart mysql,然后查询变量,show variables like '%time_zone%'查询出来是这样的:

Variable_name        Value
system_time_zone    CST
time_zone               +08:00

后来再启动服务一看,终于好了。可以睡觉了,毕竟头发不多了。

困扰的问题终于解决了-docker时区不正确的问题修改记的更多相关文章

  1. docker时区不正确的问题修改记

    前一阵子有一台服务器,mysql的时间比北京时间晚了8个小时.我知道是时区的问题,但是不知道为什么弄成这样,宿主机没有问题,后来一看mysql的docker,时区是错的. mybatis-plus打印 ...

  2. 终于解决了一个Win7 下 VS 编译的问题,困扰了我好几个月

    用 Win7 一年多了,一直在这个环境下编程,其他都挺好,就是有个问题非常恶心,在VS下编译经常出现进程正在使用,无法覆盖的错误,这个问题我记得博问中以前也有其他人遇到过,也没有解决掉.此问题困扰了我 ...

  3. Docker/K8s 解决容器内时区不一致方案

    转载自:https://cloud.tencent.com/developer/article/1433215 1.背景介绍 我们知道,使用 docker 容器启动服务后,如果使用默认 Centos ...

  4. PhpStorm 2016.3 For Mac 重大里程碑更新 -- 终于解决了不能输入中文标点符号的重大bug

    PhpStorm 2016.3 For Mac 重大里程碑更新 1.[终于解决了]不能输入中文标点符号的重大bug,如 逗号“,”.“.”: 2.可以在一个窗体中,同时打开多个项目: 3.其他... ...

  5. 被Spring坑了一把,查看源码终于解决了DataFlow部署K8s应用的问题

    1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Docker & Kubernetes相关文章:容器技术 基于各种原因,团队的Kubernetes被加了限制,必须在 ...

  6. 终于解决了IE8不支持数组的indexOf方法,array的IndexOf方法

    /* 终于解决了IE8不支持数组的indexOf方法 */ if (!Array.prototype.indexOf) { Array.prototype.indexOf = function (el ...

  7. 【转】终于解决了Apache乱码问题

    之前开放了一个空间,给网友提供电台节目音频下载.由于多年节目的文件数量甚多,且分类没有特定格式,图省事,没有制作网页提供分类下载,而是直接利用Apache的目录浏览功能,简单直观. 不过,所在的美国服 ...

  8. 非常的奇葩,终于解决了硬盘从盘盘符消失的问题 http://bbs.gamersky.com/thread-1712710-1-1.html (出处: 游民星空论坛)

    本人用电脑也十多年了,硬盘的问题也碰到过不少.但最近却碰到了一个很奇葩的问题.就是安装了一块全新的SSD硬盘当从盘,但在装上之后,在我的电脑中却不显示,没有盘符.不过打开系统磁盘管理却能显示硬盘信息. ...

  9. 终于解决了贴吧手机版的一个重大BUG

    终于解决了贴吧手机版的一个重大BUG 别诧异虽然同一个域名,但是,PC 和手机打开完全不一样的体验 http://tieba.yunxunmi.com/ 吃点夜校准备做梦去!! 发现 我云贴吧 一个  ...

随机推荐

  1. JS更改字体颜色、背景颜色

    CSS 颜色十六进制值  http://www.w3school.com.cn/cssref/css_colorsfull.asp CSS background-color 属性 body { bac ...

  2. ecshop二次开发之电子票

    前台效果展示: 2. 3. 后台展示效果: 代码实现: 一.             添加菜单项:路径admin\includes\inc_menu.PHP $modules['18_ticket_m ...

  3. python中字母的大小写转换

    1.   capitalize(): 首字母大写,其余全部小写 2.   upper() :全转换成大写 3.   lower(): 全转换成小写 4.   title() :标题首字大写,如  &q ...

  4. 【JZOJ4896】【NOIP2016提高A组集训第16场11.15】兔子

    题目描述 在一片草原上有N个兔子窝,每个窝里住着一只兔子,有M条路径连接这些窝.更特殊地是,至多只有一个兔子窝有3条或更多的路径与它相连,其它的兔子窝只有1条或2条路径与其相连.换句话讲,这些兔子窝之 ...

  5. Linux安装mongoDB步骤和方法

    Linux安装mongoDB步骤和方法 下载mongoDB数据库 mongodb-linux-x86_64-3.0.15.tgz 存放到linux文件夹中 ftp软件直接拖上去 解压文件夹(解压后,会 ...

  6. Linux的一些简单命令操作总结

    防火墙 查看防火墙状态 systemctl status iptables (或service iptables status) 关闭防火墙 systemctl stop iptables(或serv ...

  7. js的下拉刷新和上拉加载,基于iScroll v4.2.5

    html部分 <div id="wrapper" style="height: 100%"> <div id="scroller&q ...

  8. Leetcode830.Positions of Large Groups较大分组的位置

    在一个由小写字母构成的字符串 S 中,包含由一些连续的相同字符所构成的分组. 例如,在字符串 S = "abbxxxxzyy" 中,就含有 "a", " ...

  9. MUI - sortable在mui.js前端框架不兼容的解决方案

    关于sortable看这 兼容的解决方案看这 http://www.cnblogs.com/phillyx/ 示例代码已更到github

  10. 【7.18总结】KM算法

    先贴代码,参考博客来源于:https://blog.csdn.net/zyy173533832/article/details/11519291#commentBox 例题:HDU 2255 题意:n ...