网站首页 > 开源技术 正文
前言
mysql8.x的jdbc升级了,有如下变化:
驱动包用的是新版 mysql-connector-java-8.x.x.jar
新版的驱动类改成了com.mysql.cj.jdbc.Driver(com.mysql.jdbc.Driver 是 mysql-connector-java 5中的、com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6以上的版本中的)
新版驱动连接url也有所改动,增加了时区(serverTimezone)、ssl连接(useSSL)属性都不允许为空。
案例(未查询数据库服务的时区的情况下):
配置jdbc的URL:jdbc:mysql://[IP]:[PORT]/[DB]?useSSL=false&serverTimezone=UTC
应用运行一段时间后,发现数据库中登记的时间和正常的时间不一致。
查询表字段值:
而现在电脑的时间是:
问题排查
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代表的是全球标准时间,是以原子时计时,更加精准,适应现代社会的精确计时。
GMT格林威治标准时间,是指位于伦敦郊区的皇家格林尼治天文台的标准时间。
但是我们使用的时间是北京时区也就是东八区,领先UTC和GMT八个小时。
一般视为无差别,即:北京时间=UTC+8=GMT+8。
例:已知东京(东九区)时间为5月1日12:00,求北京(东八区)的区时?北京时间=12:00-(9-8)=11:00(即北京时间为5月1日11:00)。
问题找到了,就是时区字段的问题
解决方法
修改jdbc时区,改成服务器所在地的真实时区
前者为修改之前的UTC
后者为修改之后的GMT
//北京时间东八区
serverTimezone=GMT%2B8
//或者使用上海时间
serverTimezone=Asia/Shanghai
重启应用,发现时间是正确的
+---------------------+
| 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 |
猜你喜欢
- 2024-10-25 JAR、WAR、EAR的使用和区别(jars和wars)
- 2024-10-25 详解如何用同一个zabbix监控模板来监控tomcat不同端口
- 2024-10-25 mybatis-generator 初体验(mybatisplus generator)
- 2024-10-25 基于zabbix4.0监控tomcat服务及JVM内存
- 2024-10-25 01. struts2介绍(struts2入门)
- 2024-10-25 MyBatis系列-2-日志配置(mybatis 日志)
- 2024-10-25 Java初学者不得不知的概念:抽丝剥茧JDK、JRE、JVM之间的区别
- 2024-10-25 Jmeter中间件处理-ActiveMQ(jmeter常用的组件有哪些)
- 2024-10-25 苏州众里Apache Log4j2 漏洞处置建议
- 2024-10-25 操作 PDF 文件的常用JAR包(pdfreader java)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)