Jdbc-Mysql驱动版本问题
提示
mysql驱动jar包版本必须和mysql数据库版本一致,5版本就对应5版本,8版本同理,否则会报:
could not create connection to database server
无法连接到数据库异常。
今天遇到这个问题,mybatis
一直报错,navicat,ide里都能连上,且无异常,就是运行要报错。
然后起了几个docker
,挨着测试😕
# 总结:
Mysql 8.0以及以上的数据库,需要使用对应版本的8.0以上的jar包,同时需要修改引入驱动
没有指定MySQL驱动版本的情况下它自动依赖的驱动是8.0.12很高的版本,这是由于数据库和系统时区差异所造成的
在jdbc连接的url后面加上serverTimezone=GMT
即可解决问题,如果需要使用gmt+8
时区,需要写成GMT%2B8
,否则会被解析为空
在连接字符串后面加上?serverTimezone=UTC
其中UTC
是统一标准世界时间。
# 8.0版本 完整的连接字符串示例:
jdbc:mysql://ip:3306/database?serverTimezone=UTC
1
# 或者还有另一种选择:
jdbc:mysql://127.0.0.1:3306/database?useUnicode=true&characterEncoding=UTF-8
1
# 这个是解决中文乱码输入问题,当然也可以和上面的一起结合:
jdbc:mysql://ip:3306/database?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC?serverTimezone=UTC
1
# 另一种情况改成:
jdbc:mysql://ip:3306/database?serverTimezone=GMT
1
jdbc是mysql-connector-java-8.0.11.jar
,设置过时区 set time_zone = ‘+8:00’
上次更新: 2023/09/05 17:45:42