JDBC连接MySQL 8.0.x的注意事项

最近换了台新笔记本,所有的软件都重新安装了一遍,顺便都整成了比较新的版本,MySQL也选择了最新的 8.0.23 版本,然后就出现了版本问题。。。

今天尝试运行一个 Spring + MyBatis + Druid 的web项目,控制台出现了这样的异常:
Could not get JDBC Connection; nested exception is java.sql.SQLException: validateConnection false

毫无疑问是JDBC连接数据库出问题了,在网上查询了下,大多数都是将Druid的版本改为1.0.15,然而我尝试了下仍然有相同异常抛出。

整了好久才找到有效的解决方法,因此记录一下JDBC连接MySQL 8.0.x的注意事项。

1. 驱动地址

旧版本的驱动地址为"com.mysql.jdbc.Driver",而MySQL 8.0.x版本的驱动地址应改为"com.mysql.cj.jdbc.Driver"

jdbc.driver = com.mysql.cj.jdbc.Driver

2. 连接的url

旧版本的url只需要 jdbc:mysql://ip地址:端口号/数据库名称 即可,而MySQL 8.0.x版本的url应在后面再添上一些参数,包括编码方式、时区等。

jdbc.url = jdbc:mysql://ip地址:端口号/数据库名称?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true

3. 更新mysql-connector-java的版本

这个其实和上面的异常没有关系,但是如果不更新mysql-connector-java的版本的话,也会抛出其他的异常。

<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.13</version>
        <scope>runtime</scope>
</dependency>    
posted @ 2021-03-23 22:10  江子川  阅读(259)  评论(0)    收藏  举报