把SpringBoot项目中连接的MySQL数据库从5.7升级到了8.0后,启动项目后,出现如下错误,且无法启动。
报错信息如下:
Caused by: java.lang.NullPointerException: null at com.mysql.jdbc.ConnectionImpl.getServerCharacterEncoding(ConnectionImpl.java:3286) at com.mysql.jdbc.MysqlIO.sendConnectionAttributes(MysqlIO.java:1987) at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1913) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1290) at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2493) at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2334) ... 69 common frames omitted
解决办法
初步一看以为是CharacterEncoding数据库编码什么造成的,还调整了连接url的parameter,例如:
url: jdbc:mysql://localhost:3306/test?allowPublicKeyRetrieval=true&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8&useLegacyDatetimeCode=fals
不过无效,最后查到的原因是目标数据库是8.0,但是pom.xml中的数据库驱动还是5.7的,升级下pom的MySQL驱动依赖到相应的版本即可。
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> <version>8.0.29</version> </dependency>
文章评论