tidb编码问题

Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation ‘=’
mybatis执行查询的sql报错编码,放navicat上执行该sql不会报错,检查过后发现所有的编码均为utf8mb4_general_ci,未发现utf8mb4_0900_ai_ci,这是怎么引起的,应该如何解决

1 个赞

是不是 mybatis 配置了 collation 不太对?
jdbc:mysql://host:port/database?useUnicode=yes&characterEncoding=UTF-8 类似这种?

1 个赞

sql和表结构发出来看看

应该是client版本不同导致的,mysql 8.0的驱动默认是utf8mb4_0900_ai_ci这个字符集。navicat我估计你用的是5.7的驱动。

1 个赞

是的 :+1:

:+1: :+1: :+1:一看就是有过类似的经验。

版本的问题

驱动客户端版本对比一下

说的非常靠谱

:+1:

这厉害了,经验十足