问题表现
Caused by: java.sql.SQLException: Illegal mix of collations (utf8mb3_unicode_ci,IMPLICIT) and (utf8mb3_general_ci,IMPLICIT) for operation '='
应用连接数据库时出现这个报错。
问题原因
出现这个错误的原因一般是数据库字符集、排序规则不一致导致的。对查询涉及到的数据库进行检查,不仅仅是表格的字符集、排序规则,还要检查字符串的字符集、排序规则。
处理思路
调整数据库、表格、字段的字符集都保持一致,排序规则尽量不要使用utf8_general_ci。
处理步骤
1、检查数据库、数据表 排列规则等的字符集情况
SHOW VARIABLES LIKE 'character_set_server';查看整个MySQL服务器的默认字符集
查看database的字符编码 :show create database databasename;
SELECT DEFAULT_CHARACTER_SET_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = 'database_name';
查看特定数据库的字符集:
show variables like ‘collation%';
show variables like "%character%";
查看整个msyql的字符集情况: