当前位置:   article > 正文

mysql 字符集不相等 error code 1267_mysql 1267 utf8mb4_unicode_ci mix of collations fo

mysql 1267 utf8mb4_unicode_ci mix of collations for operation

错误代码: 1267

Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='
  • 1

解决方法:

select * from user where mobile = in_mobile COLLATE utf8_unicode_ci;
  • 1

#或者

select * from user where mobile COLLATE utf8_unicode_ci= in_mobile;
  • 1

#也就是所 COLLATE utf8_unicode_ci放在等号的哪一边都是可以的

**

第二种方法

**

前几天写了个Mysql存储过程,在本地环境能执行成功,但是Linux服务器里却报:

Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT)错误。

让我很无解,我对比了这个错误相关的两张表的编码,发现字符序collation都是utf8_unicode_ci,就连两表的连接查询的字段也同样是utf8_unicode_ci。

我再检查了下数据库的编码,一样是 CHARSET=utf8 COLLATE=utf8_unicode_ci,所以执行存储过程报这个Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT)错误让人很无解。

后来想起是不是Mysql的编码和库、表里的不一致,用命令看了下

mysql> show variables where Variable_name like 'collation%';
+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_unicode_ci |
+----------------------+-----------------+
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

里面的collation有不一致,而mysql5.5默认的collation为utf8_general_ci,查看服务器的my.cnf文件有配置

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

可能是存储过程执行中创建临时表时collation用的是utf8_general_ci,造成创建临时表和实际的两张表字段collation不匹配才报的这个错误,那么要真是这样的话,就得配置my.cnf让Mysql和我们的表的collation一样,就可以了。

于是在my.cnf文件中修改成这样:

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation_server=utf8_general_ci
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

重启Mysql,再把存储过程中的两张表和字段全部使用utf8_general_ci,然后把数据库也设置成utf8_general_ci,再执行存储过程,OK!可以运行了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/548270
推荐阅读
相关标签
  

闽ICP备14008679号