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>

浙公网安备 33010602011771号