MySQL版本问题导致的SQLException
背景
学习使用 SpringCloud 时,使用 消费者 调用 生产者 时抛出 SQLException,持久层框架为 MyBatis,数据库为最新版本的 MySQL 版本如下:
Server version: 8.0.17 MySQL Community Server - GPL
问题
当 消费者 调用 生产者 的接口时,生产者端 抛出 SQLException ,如下:
java.sql.SQLException: Unknown character set index for field '255' received from server.
原因
MySQL数据库版本高,MySQL的jar包版本低造成MySQL与jar包的编码错乱,如背景所描述,我的版本为 8.0.17
MYSQL 5.5 之前, UTF8 编码只支持1-3个字节;从MYSQL5.5开始,可支持4个字节UTF编码utf8mb4;
区别如下:
解决方法
需升级jar包,使用 **mysql-connector-java-5.1.46.jar **或者更高,根据自身mysql版本决定
如果使用Maven,则在pom文件中指定 依赖版本 即可,如下:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>