【 使用环境 】生产环境
【 OB or 其他组件 】observer 3.2.5 oms 3.4.0
【 使用版本 】
【问题描述】mysql通过oms迁移到ob 部分查询语句报错
ERROR 1267 (HY000): Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT), (utf8mb4_general_ci,IMPLICIT)
原库表ddl:
迁移之后:
查询语句报错:
select
t.id as a ,t1.id as b
from account_center.merchant_base_info t
left join account_center.tr_consume_offline t1
on t.merchant_no = t1.acpt_id ;
改成之后不报错:
select
t.id as a ,t1.id as b
from account_center.merchant_base_info t
left join account_center.tr_consume_offline t1
on t.merchant_no = t1.acpt_id COLLATE utf8mb4_0900_ai_ci;
目前老业务中有大量类型的情况,改程序是不太可能的。
最终通过分析 default_collation_for_utf8mb4是可能是这个参数导致的,这个参数不支持修改取的值是utf8mb4_general_ci.
与utf8mb4_0900_ai_ci关联查询就会报错。
各位大佬有遇到过类型的情况吗。