Spring连接Mysql时遇到的TimeZone的问题

我的Mysql版本是 8.0.18

使用的Driver是 com.mysql.cj.jdbc.Driver

当我们连接时没有指定时区,mysql会使用设置中time_zone所设置的时区,这个值默认是SYSTEM,也就是指向system_time_zone这个变量,在中国,这个值显示是CST

mysql> show variables like "%time_zone%";
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | CST    |
| time_zone        | SYSTEM |
+------------------+--------+

CST可以代表四个时区!!这是一个有歧义的名字!坏就坏在这里了。java会以为这个CST是美国中部时间 (Central Standard Time )。这样就导致了JDBC获取TimeStamp时的时区出错!。

解决方法有两种:

  1. 连接时指定时区,加参数serverTimezone=Aisa/Shanghai
  2. 改mysql变量,从SYSTEM改为+08:00,方法是set global time_zone = ‘+08:00‘;

相关文章: https://www.cnblogs.com/bgo-tech/p/6929701.html

原文地址:https://www.cnblogs.com/modyuan/p/12302216.html

时间: 2024-08-01 02:49:32

Spring连接Mysql时遇到的TimeZone的问题的相关文章

java运行代码连接mysql时提示:找不到类错误

使用IntelliJ IDEA Community Edition进行代码编写.. 使用一下代码连接mysql时出现了:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver错误 然后就很好奇,import都能导入数据. 后来用idea工具打开以前的练习,发现架包也存在. 但是新建的练习就没有把架包弄进来.然后出现了这类错误.. 原因是:使用idea工具开发时,如果之前练习有添加相应的数据,那么在external libraries中是能显

连接mysql时提示java.sql.SQLException: Access denied for user 'root'@'DESKTOP-N2B2D9A' (using password: YES)

用root连接mysql时提示:访问被拒绝 检查一下mysql server是否开启,发现后台在运行着..  然后查了一下mysql的用户表,发现root只能运行使用本地ip(localhost或者127.0.0.1)进行连接 解决方法:新开一个权限GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'jeffw' WITH GRANT OPTION; 然后查询一下:select * from user; 新开的root的已经开启权限,

R连接Mysql时,中文显示为问号的解决方案

1.打开Mysql安装目录下的my.ini文件,将其中的default-character-set= 均设置为GBK 2.在管理工具——数据源(ODBC)中将创建好的数据源作如下设置: R连接Mysql时,中文显示为问号的解决方案

解决JDBC连接MySQL时发出的警告WARN: Establishing SSL connection without server's identity verification ...

对于稍微有点强迫症的我来说,每次正常加载MySQL驱动后,eclipse的控制台总是出现一行红色警告: Fri Mar 30 14:55:35 CST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection m

jdbc连接mysql时发出警告:WARN: Establishing SSL connection without server's identity verification is not recommended...

警告信息如图: 解决: 在jdbcurl后面加上这个&useSSL=false参数: jdbc连接mysql时发出警告:WARN: Establishing SSL connection without server's identity verification is not recommended... 原文地址:https://www.cnblogs.com/xiamaojjie/p/12216086.html

远程连接mysql时,提示“is not allowed to connect to this MySQL server”的解决方法

ERROR 1130: Host '192.168.1.3′ is not allowed to connect to this MySQL server这是告诉你没有权限连接指定IP的主机,下面我们来看看解决办法. 处理方法有二个 1.(如何解决客户端与服务器端的连接(mysql) :xxx.xxx.xxx.xxx is not allowed to connect to this mysql serv ) 授权法.例如,你想myuser使用mypassword从任何主机连接到mysql服务器

JDBC 连接 MySQL 时碰到的小坑

最近从MS SQL Server换到了MySQL,已经是8.11版本了,安装的时候似乎还用了新的身份认证方式之类的,连接过程中也是磕磕绊绊,碰到很多奇奇怪怪的问题,在此记录下来. 驱动加载: 以前使用JDBC时,都是导入相应的JDBC驱动jar包,然后使用 Class.forName(driverName); 加载驱动,再进行数据库连接,在使用MySQL 8.11版本及其对应的Connector时,如果使用上述代码加载com.mysql.jdbc.Driver的话,控制台会输出一行信息: Loa

Pycharm 连接Mysql Server returns invalid timezone

Pycharm 关联mysql失败_Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezon' 时区错误,MySQL默认的时区是UTC时区,比北京时间晚8个小时. 所以要修改mysql的时长 在mysql的命令模式下,输入: set global time_zone='+8:00'; 原文地址:https://www.cnblogs.com/mumu365/p/12003195.html

PHP连接mysql时mysql_connect()函数不可用,报500错误

我在搭建环境时也没有再安装mysql扩展,但是今天在维护一个项目时,出现报错 Fatal error: Uncaught Error: Call to undefined function mysql_connect() 可以使用phpize工具手动编译生成mysql.so扩展来解决 下面是操作步骤: 1.进入php源码的ext/mysql目录 cd /home/oldboy/tools/php-5.5.32/ext/mysql/ 2.运行phpize,在该目录下生成一个configure文件(