解决mysql时区问题以及SSL问题

mysql参数url的值需要这样设置:

jdbc:mysql://localhost:3006/test?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&useSSL=false

参数解释:

1、useUnicode
是否使用Unicode字符集,如果参数characterEncoding设置为gb2312或gbk,本参数值必须设置为true

2、characterEncoding
当useUnicode设置为true时,需要指定字符编码,比如可设置为gbk或者UTF-8

3、useJDBCCompliantTimezoneShift
没看出来啥意思,没搜到

4、useLegacyDatetimeCode
useLegacyDatetimeCode这个参数是一个开关参数,默认为true,但是当其设置为false时,useTimezone、useJDBCCompliantTimezoneShif、useGmtMillisForDatetimes、useFastDateParsing这几个参数都会变的无效化,其中useTimeZone(主要用于web服务器和数据库部署在不同时区时,开启服务器和客户端之间的时区转换,例如web服务器部署在北京(GMT+8),数据库部署在美国加州(GMT-8)。现在web数据库有一条记录的创建时间是当地时区时间22:00,那存储到数据库的时间应该是数据库当地时区时间06:00。然后web服务器通过jdbc读取到这条记录后,读取到的创建时间应该仍旧是以当地时区为标准的22:00)

5、serverTimezone
设置服务器端的时区,可以选择北京时间东八区GMT%2B8或者上海时间Asia/Shanghai,这样不会出现MySql数据库插入和读取的时间不正确的问题

6、useSSL
SSL协议提供服务的主要作用:
1)认证用户服务器,确保数据发送到正确的服务器;    .
2)加密数据,防止数据传输途中被窃取使用;
3)维护数据完整性,验证数据在传输过程中是否丢失;
结论:使用useSSL=false关闭SSL,可以解决SSL问题

注意:在xml配置文件中,url中的&符号需要转义成&,例如上面的就变成了

jdbc:mysql://localhost:3006/test?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Hongkong&useSSL=false
发布了177 篇原创文章 · 获赞 24 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42449963/article/details/105414566
今日推荐