问题:

遇到这样一个问题,Mysql的时区,没有设置,默认是时区是0,在java代码中对应的字段类型是TimeStamp,mysql字段类型也是TimeStamp

项目A

  • 代码中获取到的时间 是正确的。
  • 写到数据库的时间也是对的。
  • 从数据库读取出来时间是正确的

项目B

  • 代码中获取的时间是对的
  • 写到数据库的时间,慢8小时
  • 从数据库读取出来时间,却是正确的。(也就是说比数据库中的时间快8小时)

原因:

经过不断的尝试,探索终于发现时mysql-connector-java的版本问题,项目A使用的版本是5.1.41,项目B使用的8.0.11。写入数据时,这个版本会自动根据,传入时间的时区和mysql的时区,自动把时间进行调整

服务器的mysql版本是5,如果服务器的mysql版本是8,则项目不能使用5版本的mysql-connector-java库

解决:

当然可以直接注释掉,版本这条代码,默认使用5.1.41,正确设置mysql时区,感觉会比较优雅一点

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><!--<version>8.0.11</version>--><scope>runtime</scope>
</dependency>

##查看mysql当前时间和时区

> select curtime();   #或select now()也可以
+-----------+
| curtime() |
+-----------+
| 15:18:10  |
+-----------+> show variables like "%time_zone%";
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | CST    |
| time_zone        | SYSTEM |
+------------------+--------+
2 rows in set (0.00 sec)

time_zone说明mysql使用system的时区,system_time_zone说明system使用CST时区

修改时区:

第一种方法:

这种方法,不需要重启mysql,但是重启mysql,需要再次设置

> set global time_zone = '+8:00';  ##修改mysql全局时区为北京时间,即我们所在的东8区
> set time_zone = '+8:00';  ##修改当前会话时区
> flush privileges;  #立即生效

第二种方法:

# vim /etc/my.cnf  ##在[mysqld]区域中加上
default-time_zone = '+8:00'# /etc/init.d/mysqld restart  ##重启mysql使新时区生效

附录1:SET time_zone = ‘+8:00’可以使用+8:00也可以使用Asia/Shanghai,如SET time_zone = ‘Asia/Shanghai’
+8:00指东八区,顾名思义,-7:00就是指西七区

附录2:那对于购买的云数据库实例呢,如AWS的RDS?这样要怎么办?
具体可以看我的这篇文章:更改亚马逊AWS RDS实例的mysql时区

附录3:关于system_time_zone,time_zone的官方说明
MySQL Server Time Zone Support

参考:
mysql修改时区的几种方法
MySQL时间慢了八个小时
mysql 自动时间戳和系统时间差八小时的解决

关注我的公众号,轻松了解和学习更多技术

关于Mysql 的时区问题相关推荐

  1. [转]MySQL修改时区的方法小结

    本文转自:https://www.cnblogs.com/mracale/p/6064447.html 这篇文章主要介绍了MySQL修改时区的方法,总结分析了三种常见的MySQL时区修改技巧,包括命令 ...

  2. JDK8中好用的日期处理-LocalDate类-LocalTime-LocalDateTIme,mysql解决时区相差13小时的问题,日期格式器DateTimeFormatter

    JDK8中好用的日期处理-LocalDate类-LocalTime-LocalDateTIme,mysql解决时区相差13小时的问题,日期格式器DateTimeFormatter 参考文章: (1)J ...

  3. 如何设置MySQL的时区?

    本文翻译自:How do I set the time zone of MySQL? On one server, when I run: 在一台服务器上,当我运行时: mysql> selec ...

  4. mysql 设置时区,【MySQL】修改时区设置

    实践中遇到的一个问题,开发环境的时间数据一切正常,但正式环境数据库中的时间数据与实际相比差了8个小时.根据以往的PHP时区问题经验,断定问题处在MySQL的时区设定上. 用命令行连上去看一下时间,可以 ...

  5. 数据库时区那些事儿 - MySQL的时区处理

    原文地址 当JVM时区和数据库时区不一致的时候,会发生什么?这个问题也许你从来没有注意过,但是当把Java程序容器化的时候,问题就浮现出来了,因为目前几乎所有的Docker Image的时区都是UTC ...

  6. IDEA连接mysql出现时区错误_idea连接数据库时区错误

    错误界面 IDEA连接mysql,地址,用户名,密码,数据库名,全都配置好了,点测试连接,咔!不成功! 界面是这样的, 翻译过来就是:服务器返回无效时区.进入"高级"选项卡,手动设 ...

  7. mysql内部时区_一文解决MySQL时区相关问题

    前言: 在使用MySQL的过程中,你可能会遇到时区相关问题,比如说时间显示错误.时区不是东八区.程序取得的时间和数据库存储的时间不一致等等问题.其实,这些问题都与数据库时区设置有关,本篇文章将从数据库 ...

  8. mysql印度时区_一次 JDBC 与 MySQL 因 “CST” 时区协商误解导致时间差了 14 或 13 小时的排错经历...

    CST 时区 名为 CST 的时区是一个很混乱的时区,有四种含义: 美国中部时间 Central Standard Time (USA) UTC-06:00 澳大利亚中部时间 Central Stan ...

  9. mysql修改时区方法小结

    这篇文章主要介绍了MySQL修改时区的方法,总结分析了三种常见的MySQL时区修改技巧,包括命令行模式.配置文件方式及代码方式,需要的朋友可以参考下 方法一:通过mysql命令行模式下动态修改 1.1 ...

  10. mysql的时区设置

    mysql的时区设置 IDEA配置mysql数据库时,地址,用户名,密码,数据库名填写之后,点测试连接,提示 Server returns invalid timezone. Go to 'Advan ...

最新文章

  1. java fx alert_javaFx:使用弹出对话框 Alert
  2. tomcat启动一直报空指针错误
  3. FisherFace 进行人脸分裂
  4. RabbitMQ和kafka从几个角度简单的对比--转
  5. VS远程开发(远程调试)编译报错:对‘xxx’未定义的引用(设置库依赖顺序)(已解决)pthread(项目-->属性-->链接器-->输入-->库依赖项)
  6. Jmeter连接到Mysql
  7. 微服务【1.1】Swagger的使用
  8. JAVA——TextArea和JTextArea添加滚动条(ScrollBars)
  9. 连接关键词用什么符号
  10. CV:深入浅出的讲解傅里叶变换(真正的通俗易懂)
  11. 【Oracle 学习笔记】Day 1 常用函数整理(转换、DeCode),表的外键
  12. sublime text3占用CPU过高
  13. 实参和形参的一些问题
  14. Anaconda 3 详细安装教程
  15. window下从python开始安装科学计算环境
  16. 山东大学操作系统课设
  17. AVOD-代码理解系列(二)
  18. 用计算机刻录光盘,图文详解怎么用电脑刻录光盘
  19. Android 蓝牙HOGP协议(基于ble-gatt蓝牙)连接流程分析--framework-jni-btif-bta-btm-hci -- 全网最详细(二)
  20. VB6.0的MsgBox语句

热门文章

  1. 【数据结构】Java版
  2. Win 7 :禁用计算机的休眠模式
  3. SQL Server developer和enterprise有什么区别?以及各个版本的定义
  4. 关于 京东推广-京准通 脑图分享
  5. 卫健委最新报告对医疗设备售后服务产生了什么影响
  6. matlab 模拟滤波器设计与实现,转一个讲matlab设计模拟滤波器的文章2(转)
  7. 这些曾经世界第一的手游,现在全都凉了
  8. 王爽汇编语言 实验15
  9. (转)为Linux服务器部署高效防毒软件
  10. 什么是真实--有感于“嫁人就要嫁范跑跑!”