前言

mysql8.x的jdbc升级了,增加了时区(serverTimezone)属性,并且不允许为空。

血案现场

配置jdbc的URL:jdbc:mysql://[IP]:[PORT]/[DB]?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true

应用运行一段时间后,发现数据库中登记的时间和正常的时间不一致。

查询表字段值:

而现在电脑的时间是:

问题排查

1、服务器时间不同步

使用命令:date,查看linux服务器时间

[root@abc ~]# date

Sat Mar7 18:43:30 CST 2020

服务器的机器时间没有问题

2、程序问题

uLog.setLogTime(new Date());

程序是使用的机器时间,不会有问题

3、数据库时间

查看数据库时间:select sysdate()

mysql>select sysdate();+---------------------+

| sysdate() |

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

| 2020-03-07 18:48:01 |

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

1 row in set

时间也是没有问题,最后考虑到jdbc增加了时区属性

问题根源

UTC是什么时区

不属于任意时区  。协调世界时,又称世界统一时间,世界标准时间,国际协调时间,简称UTC。

时区(Time Zone)是地球上的区域使用同一个时间定义。1884年在华盛顿召开国际经度会议时,为了克服时间上的混乱,规定将全球划分为24个时区。在中国采用首都北京所在地东八区的时间为全国统一使用时间。

例:已知东京(东九区)时间为5月1日12:00,求北京(东八区)的区时?北京时间=12:00-(9-8)=11:00(即北京时间为5月1日11:00)。

问题找到了,就是时区字段的问题

解决方法

修改jdbc时区,改成服务器所在地的真实时区

修改前:jdbc:mysql://[IP]:[PORT]/[DB]?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true

修改后:jdbc:mysql://[IP]:[PORT]/[DB]?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true

重启应用,发现时间是正确的

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

| log_time |

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

| 2020-03-07 19:04:06 |

| 2020-03-07 19:04:03 |

| 2020-03-07 19:04:03 |

| 2020-03-07 19:04:03 |

| 2020-03-07 19:04:03 |

| 2020-03-07 19:04:03 |

| 2020-03-07 19:04:02 |

| 2020-03-07 19:04:02 |

| 2020-03-07 19:03:51 |

| 2020-03-07 10:40:35 |

| 2020-03-07 10:40:35 |

| 2020-03-07 10:40:35 |

mysql8 servertime_MySql的时区(serverTimezone)引发的血案相关推荐

  1. mysql 时区时间_MySql的时区(serverTimezone)引发的血案

    前言 mysql8.x的jdbc升级了,增加了时区(serverTimezone)属性,并且不允许为空. 血案现场 配置jdbc的URL:jdbc:mysql://[IP]:[PORT]/[DB]?c ...

  2. mysql timezone上海_MySql的时区(serverTimezone)引发的血案

    前言 mysql8.x的jdbc升级了,增加了时区(serverTimezone)属性,并且不允许为空. 血案现场 配置jdbc的URL:jdbc:mysql://[IP]:[PORT]/[DB]?c ...

  3. 波涛汹涌的黄金甲,一碗中药引发的血案!

    严重声明:网路转载 主要情节: 父王(周润发)说母后(巩利)身体虚寒,需要每天定时服用亲自配置的中药,已服用了几十年.而父王早就知道了母后和太子元祥(刘烨)之间的苟且之事,远征回宫后在其中药中加入一味 ...

  4. mysql backlog_一次优化引发的血案

    前些天一个Nginx+PHP项目上线后遭遇了性能问题,于是打算练练手,因为代码并不是我亲自写的,所以决定从系统层面入手看看能否做一些粗线条的优化. 首先,我发现服务的Backlog设置过小,可以通过s ...

  5. 第三方账号登陆的过程及由此引发的血案

    72agency · 2014/03/19 10:40 0x00 前言 第三方账号登陆也就是当你没有A网站的注册账号时,你可以使用该与A网站合作的第三方账号登陆A,在大多数情况下你会立即拥有与你第三方 ...

  6. 一个普通ERROR 1135 (HY000)错误引发的血案:

    一个普通ERROR 1135 (HY000)错误引发的血案: 今天接到测试人员反应,测试环境前端应用程序无连接mysql数据库,登录mysql服务器,查看错误日志,发现有如下报错: 点击(此处)折叠或 ...

  7. 一次 Druid 连接池泄露引发的血案!

    最近某个应用程序老是卡,需要重启才能解决问题,导致被各种投诉,排查问题是 Druid 连接池泄露引发的血案.. 异常日志如下: ERROR - com.alibaba.druid.pool.GetCo ...

  8. 线上 CPU100% 异常案例:一个正则表达式引发的血案

    前几天线上一个项目监控信息突然报告异常,上到机器上后查看相关资源的使用情况,发现 CPU 利用率将近 100%.通过 Java 自带的线程 Dump 工具,我们导出了出问题的堆栈信息. 我们可以看到所 ...

  9. 一场由过滤器Filter引发的血案

    一场由过滤器Filter引发的血案 事件起因 本来应该是下图的登录界面 变成了这样 What's the fuck????? 抓狂 原因 解决方法: 在过滤器中给资源文件开个绿色通道

最新文章

  1. php通过http请求发送数组
  2. 【必懂概念】一文详解什么是空洞卷积?
  3. 互联网日志的种类、存储和计算
  4. 开发应用层的需要了解 framework层吗?---不需要!!!!
  5. 移动端html5广告的优势,h5手机端开发的优势都有哪些呢
  6. 笔记:windows 2012 安装SQL 2008 群集报错
  7. (需要大神,请求解决,遇见runtime error 错误)poj 1009 java
  8. poj2406Power string
  9. Linux消息队列实现进程间通信
  10. 为谷歌浏览器Chrome安装鼠标手势插件
  11. iphone禁止自动连接wifi操作方法「苹果教程」
  12. 【原型】Axure基本入门
  13. 小能手英语口语学习笔记 2 发音规则-连读、略读、浊化
  14. 五大特色展区抢占C位,2019深圳国际全触与显示展引燃触控显示产业未来
  15. ab并发测试-Linux
  16. 团队作业1——团队展示
  17. Java子类与父类之间的对象转换
  18. paste shell 分隔符_Shell paste命令
  19. MySQL练习(一)
  20. c语言中错误为ffblk未定义,C - 错误没有定义和存储未知

热门文章

  1. 跳槽也不一定涨薪,2023,别再裸辞了····
  2. DCDC变换器设计与磁学基础
  3. 新增 Sitecore Rendering 组件
  4. Angular 组件接口之 ControlValueAccessor
  5. 使用代理连接外网服务器
  6. 画ROC为什么clf.predict_proba(X_train)[:, 1] 而不是[:,0]?
  7. xpath命令following-sibling用法
  8. 阿里“亲拍”出世,移动剪辑市场有什么好争的?
  9. 鐘明系列十三:『16阶类自然数可抹标准平方幻立方』(下)
  10. 2021云栖大会【视觉AI平台与生态论坛】线上直播等你来~