前言

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. 关于sqlite数据库在使用过程中应该注意以下几点
  2. Spring 三种注入方式
  3. Oracle删除用户与删除表
  4. GET和POST史上最全总结
  5. layui横向时间线_用打火机或烟头烧羽毛球拍线坏处多
  6. 对比了一下Hyper-v和Vmware,有发现.
  7. 【数值分析】—— 对数函数、指数函数(数值稳定性)
  8. bin文件如何编辑_每日学习:Linux文件与目录管理常用命令解析
  9. Stacked injection--堆叠注入--堆查询注入
  10. opencl JAVA编程_《OpenCL异构并行编程实战》第十二至十四章
  11. 解决NLPIR汉语分词系统init failed问题
  12. 最小生成树(最小支撑树)算法
  13. 微观社会调查数据:中国家庭追踪调查 CFPS
  14. C站能力认证(C4前端基础认证) //任务一:构建可访问性HTML实例
  15. Excel2007打开文件时,不显示内容,需要拖拽进去才能显示
  16. 读《犹太人教子枕边书》
  17. Android第一行代码踩坑qwq
  18. 微信JS-SDK实现自定义分享功能,分享给朋友,分享到朋友圈及QQ自定义分享--微信分享
  19. 迅雷方舟与花瓣:不一样的“瀑布流”
  20. 蓝牙 UUID 解释

热门文章

  1. 牛新庄--数据库专家
  2. 设计模式 with Python 10:状态模式
  3. 2018少儿编程引领新的起点,是快速发展一年,我们不能在输在起跑线上了
  4. 基于 CNN-GRU 的菇房多点温湿度预测方法研究 学习记录
  5. 2023 年我还在用的软件
  6. 收集一些前端工具库资源
  7. 产品设计原则:Fitts’ Law费茨定律
  8. 使用Labellerr轻松进行6个步骤的图像分类标签
  9. Spring入门(2)
  10. 技术猿、攻城狮日常必知