背景
最近项目上MySQL库运行过程中遇到SQL执行报错:java.sql.SQLException: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation ‘=’
分析
询问DBA后,被告知是关联查询的表排序规则不一致导致,如下图:
解决办法
要解决这个问题很简单,就是将两张表的排序规则调整一致就好。但是以哪个为准呢?
首先,我们要确定数据库使用的排序规则,一般情况下,建表的排序规则尽量与数据默认配置保持一致
show variables where variable_name like '%collation%';
结果如下图:
剩下就简单了,如果有工具连数据库