MySQL编码错误,做个笔记。
今天执行存储过程时发现了一个BUG,整理解决过程在此记录。
问题发生在存储过程获取视图等
因为编码格式不同出现如下错误:
错误代码: 1267
Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '='
解决方案
1.在my.cnf中也做相同编码的配置
[client]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character_set_server = utf8mb4
collation-server = utf8mb4_general_ci
2.重启MySQL服务执行
show variables where Variable_name like 'collation%';查看
最后最重要的来了
如果只是做完上面步骤会发现问题依然存在!
此时只要删除视图或者存储过程重新创建视图即可。