本文主要是介绍JDBC报错The server time zone value ‘Öйú±ê׼ʱ¼ä‘ is unrecognized or represents more than a time zone.,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
打开JDBC连接数据库时报错,具体情况如下
起初我以为问题出现在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记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
这篇关于JDBC报错The server time zone value ‘Öйú±ê׼ʱ¼ä‘ is unrecognized or represents more than a time zone.的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!