springboot mysql 相差13小时

发布于 2019-07-19

springboot mysql 相差13小时

以前出现过时间差8小时的情况,是因为时区的问题,UTC代表的是全球标准时间 ,但是我们使用的是东八区时间,而这次却出现了相差13个小时的现象,同样也是因为时区的原因,解决方法是:连接数据库时url的时区使用中国标准时间。

1.查看linux服务器的系统时间

date

Thu Jun 6 11:36:22 CST 2019

没问题

2.log查看 Java 调用 new Date()

时间没问题

3.查看数据库时间

show variables like '%time_zone%';
select now();
SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);

时间没问题。

4.定位问题

java将正确的时间传给了数据库,存起来就变成了不一样的时间。
所以猜测是java连接数据库出了问题。

mysql-connector-java的8.0后的版本会影响读取到的时区值

5.解决方案

Java 连接数据库时指定时区。

&serverTimezone=Asia/Shanghai
喜欢 0
奋楫笃行,臻于至善!

相关文章

使用 Mycat 中间件搭建 MySQL 高可用实现分库分表及读写分离

Mycat 是一款基于阿里开源产品Cobar而研发的开源数据库分库分表中间件(基于Java语言开发),可以用来方便地搭建面向企业应用开发的大数据库集群,支持事务、ACID等特性,其核心是基于代理方案实...
阅读全文

通用架构模式和通用架构服务

架构模式是在给定上下文的软件架构中,针对常发生问题的一种通用、复用的解决方案。架构模式类似于软件设计模式,但是范畴更广。一个好的软件产品往往需要有良好的架构思想和架构服务来支撑整个软件的生命周期,本文...
阅读全文

Java 的可重入锁和不可重入锁

可重入锁又名递归锁,是指在同一个线程在外层方法获取锁的时候,再进入该线程的内层方法会自动获取锁(前提锁对象得是同一个对象或者class),不会因为之前已经获取过还没释放而阻塞。Java中Reentra...
阅读全文

Redis 的两种持久化方式及使用场景分析

Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘。当下次Redis重启时,利用持久化文件实现数据恢...
阅读全文

redis 高可用主从,哨兵,集群解决方案

Redis因为其高性能和易用性在我们后端的服务中发挥了巨大的作用,并且很多重要功能的实现都会依赖redis。除了常用的缓存,还有队列,发布订阅等重要用处。所以redis的服务高可用就显得尤为关键。这里...
阅读全文

Redis 缓存穿透、缓存击穿、缓存雪崩的区别及解决方案

Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很...
阅读全文

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注