SpringBoot升级到Mysql8.0出现ConnectionImpl.getServerCharset NullPointerException解决

2022-05-28 988点热度 0人点赞 0条评论

把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>

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论