关于Mysql6.0+的时区错乱问题
如果使用mysql6.0+的JDBC驱动版本的时候,有时候会出现程序时间与数据库时间相差很多个小时;
1.如果以北京时间为例,相差8个小时的情况一般是你在连接jdbc的url中没有标明system_time_zone=Asia/ShangHai,一般加上参数就可以解决;
2.如果以北京时间为例,相差13小时或者14个小时,大多数情况是mysql协商会话的时候,Java把服务器的 "CST" 时区 误以为是美国中部的 "CST" 时区;
关于 CST 时区, 用这个名字的并不是中国一个地区,其代表的含义有多个,所以是一个很混乱的时区;
美国中部时间 Central Standard Time (USA) UTC-06:00 澳大利亚中部时间 Central Standard Time (Australia) UTC+09:30 中国标准时 China Standard Time UTC+08:00 古巴标准时 Cuba Standard Time UTC-04:00
在美国中部时间的CST时区里面,因为实行冬令时和夏令时,夏令时为"3月11日至11月7日 ";
在夏令时的阶段,CST 为UTC-05:00, 和北京时间(UTC+08:00)相差13个小时;
在冬令时的阶段,CST 为UTC-06:00, 和北京时间(UTC+08:00)相差14个小时;
mysql新版本的时间协商,是在JDBC和mysql建立连接的时候查询的,在 com.mysql.cj.jdbc.ConnectionImpl 中的 initializePropsFromServer() 获取服务器时间的时候,如果time_zone为 "SYSTEM",的时候,会取一个mysql服务器的一个时间 system_time_zone ,这个可以在mysql中查到: show variables like '%time_zone%';
如果得到的是 CST ,Java程序里面就不能判断这是中国标准时间 CST +0800 ,会误以为这是美国中部标准时间 CST -0500,所以在转换相关时间格式的参数(如 timestamp Datetime 等等)时,会出错.
2.登入服务器数据库,手动指定时区:
set global time_zone = '+08:00';
set time_zone = '+08:00';
3.选择任何一种方案之后,重启数据库;
关于Mysql6.0+的时区错乱问题的更多相关文章
- Mysql6.0连接中的几个问题 Mysql6.xx
Mysql6.0连接中的几个问题 在最近做一些Javaweb整合时,因为我在maven官网查找的资源,使用的最新版,6.0.3,发现MySQL连接中的几个问题,总结如下: 1.Loading clas ...
- 彻底解决Odoo8.0单时区应用中的时区问题
原文地址:http://shine-it.net/index.php/topic,17001.0.html 由于数据库中存储的是UTC时区,默认情况下数据导出和group by都存在时区问题.彻底解决 ...
- 关于RichTextField2.0表情显示错乱的问题!
flex4.5和4.6在textField.getCharBoundaries()这个方法的返回结果上是不一样的.getCharBoundaries()方法只会返回被渲染出来的文字的边框信息,也就是说 ...
- Struts2.3.4+Hibernate4.2.4+Mysql6.0整合
1.项目搭建过程: (1). 创建一个Web Project.导入Struts2和Hibernate的jar包.(如果不知道Struts2的jar包,可以在下载的struts的jar包中,找到apps ...
- Spring使用DriverManagerDataSource和C3P0分别配置MySql6.0.6数据源
首先,看一下项目路径 先说spring配置文件吧,这个比较重要 <?xml version="1.0" encoding="UTF-8"?> < ...
- mysql8.0 解决时区问题
jdbc:mysql://localhost:3306/databaseName?useUnicode=true&characterEncoding=UTF-8&useOldAlias ...
- SpringBoot2.0+ DataSourceInitializer不生效的问题
1.在url后声明时区 2.更换mysql6.0+的驱动 3.配置属性initialization-mode 为 always 我就是这样解决问题的,如果没解决的话,请在留言处指出错误.谢谢
- Android中的常见时区
方法: private void printTimeZone(){ String[] ids= TimeZone.getAvailableIDs(); for (int i = 0; i < i ...
- MySQL 安装 5.0
MySQL免安装版配置 1.下载 MySQL 免安装版 2.将 MySQL 解压到待安装目录,使用%MYSQL_HOME%表示 3.打开文件my-huge.ini另存为my.ini,在my.ini文件 ...
随机推荐
- phpstudy 安装Apache SSL证书实现https连接
Windows phpstudy安装ssl证书教程. 工具/原料 phpstudy 集成环境 申请的SSL证书 方法/步骤 首先申请免费的ssl证书,很多地方都可以申请.我是在腾讯云!如图 ...
- Linux下tar bz gz等压缩包的压缩和解压【转】
Linux下用户经常需要备份计算机系统中的数据,为了节省存储空间,常常将备份文件进行压缩,本文是对压缩和解压命令的大致总结 .tar.gz 解压:tar zxvf FileName.tar.gz ...
- CentOS7上部署taiga项目管理软件
作者:waringid 一.简介 Taiga 是一个免费开源,而且功能非常强大的项目管理平台,用于初创企业和敏捷开发团队.提供一个简单.漂亮的项目管理工具.Taiga 采用 Python Django ...
- 洛谷P3398 仓鼠找suger
传送门啦 思路: 那么从 $ A $ 到 $ B $ 可以分解成 先从 $ A $ 到 $ X $ 再从 $ X $ 到 $ B $ ... 另一个同理 假设能相遇 那么 要么在 $ A $ 到 $ ...
- Java_数据类型
变量就是申请内存来存储值. java的两大数据类型:内置数据类型和引用数据类型 数据类型 6种数据类型(4种整数型,2种浮点型),一种字符类型,一种布尔类型 数据类型 位数 描述 byte 8位 -1 ...
- Vue CLI 3+tinymce 5富文本编辑器整合
基于Vue CLI 3脚手架搭建的项目整合tinymce 5富文本编辑器,vue cli 2版本及tinymce 4版本参考:https://blog.csdn.net/liub37/article/ ...
- C# 实现登录并跳转界面
Program.cs文件添加如下内容 Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(f ...
- 根据token分割字串
#include <iostream> #include <string> #include <cstring> int main() { const char * ...
- 数据库链接池c3p0的配置
由于我看的是远古教程,所以里面各种驱动jar包还有c3p0包都是远古版本,对于最新版本的jdbc已经失去的作用,所以我在这里重写一下! 1.首先是c3p0的位置,package的外面,src的里面 2 ...
- WPF中的逻辑树和可视化树
WPF中的逻辑树是指XAML元素级别的嵌套关系,逻辑树中的节点对应着XAML中的元素. 为了方便地自定义控件模板,WPF在逻辑树的基础上进一步细化,形成了一个“可视化树(Visual Tree)”,树 ...