JDBC报错The server time zone value ‘Öйú±ê׼ʱ¼ä‘ is unrecognized or represents more than a time zone.

打开JDBC连接数据库时报错,具体情况如下

在这里插入图片描述

起初我以为问题出现在sql的映射文件中,因为它提示的错误显示

UserMapper是我的sql映射文件
(UserMapper.xml是我的sql映射文件)
但当我尝试过对它进行修改后,发现not related,毫无关系,这时候我发现下面还有一个更奇怪的报错
在这里插入图片描述
(后面还有,太长了,没截完)
后来查阅资料发现这都是因为安装mysql的时候时区设置的不正确 mysql默认的是美国的时区,而我们中国大陆要比他们迟8小时,采用+8:00格式。


解决方案:

1.在jdbc连接的url后面加上serverTimezone=GMT%2B8即可解决问题。(我们这里为东八区)
在这里插入图片描述

2.再一个解决办法就是使用低版本的MySQL jdbc驱动,5.0版本不会存在时区的问题。


注意:
在使用8.0版本的MySql驱动时,驱动Driver的value值应该写为com.mysql.cj.jdbc.Driver,如下:
在这里插入图片描述
5.0版本的则是com.mysql.jdbc.Driver

Tips:
在编写url后面的参数时,不知道是版本问题还是什么原因,参数之间的转义与号要使用&,而不能使用&
像这样:在这里插入图片描述
useSSL=true/false,是否进行ssl连接


SSL协议(安全套接字协议)
它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
SSL协议可分为两层:
SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值