背景
學習使用 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>