Mysql编码引起的Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT)错误

原创 2015年07月10日 18:06:05

前几天写了个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 |
+----------------------+-----------------+

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

    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    [mysqld]
    character-set-server=utf8

可能是存储过程执行中创建临时表时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

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


解决mysql自动断掉连接的问题

HTTP Status 500 - org.hibernate.exception.JDBCConnectionException: The last packet successfully rece...
  • oThomasyang
  • oThomasyang
  • 2014年07月26日 20:30
  • 15763

MySQL数据库字符集引发存储过程【Illegal mix of collations】问题总结

MySQL数据库字符集 1.1.1  MySQL字符集情况介绍 I. 字符集 字符值包含字母、数字和特殊符号。在字符值可以存储之前,字母、数字和字符必须转换为数值代码。所以必须建立一个转换表,其中包含...
  • JenMinZhang
  • JenMinZhang
  • 2016年03月09日 18:31
  • 2032

Ubuntu12.04环境搭建遇到的问题和使用技巧(一)

到新公司后需要在Ubuntu12.04下搭建Android的开发环境,在这个过程中还是会碰到很多问题,在这里记录下来,方便自己以后和有需要的人参考。来源于网络! 1. Q:在终端中输入: sudo a...
  • deng0zhaotai
  • deng0zhaotai
  • 2014年10月10日 11:24
  • 3936

mysql错误提示Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE)的一个解决办法

mysql 中关于:Error Code: 1267 Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (utf8_general_ci,...
  • chenneu
  • chenneu
  • 2012年09月17日 11:06
  • 6379

数据库错误发生 1267 Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) fo

在操作MYsql数据库时,报“ error code [1267]; Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (utf8_g...
  • morley_wang
  • morley_wang
  • 2012年07月03日 15:36
  • 19139

Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation

MYSQL错误:Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (gbk_chinese_ci,COERCIBLE) for o...
  • Fx_hui_only
  • Fx_hui_only
  • 2014年02月27日 20:14
  • 984

解决 Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE)

1.线上BUG报错:org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategoriz...
  • zj380475045
  • zj380475045
  • 2017年07月19日 09:56
  • 734

Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLIC

在mysql5中遇到的问题: Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT...
  • a137268431
  • a137268431
  • 2015年02月09日 17:20
  • 817

对 mysql Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (gb2312_chinese_ci,I的解决

对于常见的乱码问题,有的在数据库本身已经为gbk或gb2312时候,但是查询出来却是乱码,这是因为mysql在连接的过程中还有道编码,因此将连接的编码设为gb2312或utf-8 即可,如: jd...
  • hqyhqyhq
  • hqyhqyhq
  • 2013年07月09日 10:06
  • 782

wordpress导入数据错误MySQL返回:#1273 – Unknown collation:’utf8mb4_unicode_ci’

wordpress网站转移服务器空间,通过phpmyadmin导入sql数据时出现错误,错误提示:MySQL返回:#1273 – Unknown collation:’utf8mb4_unicode_...
  • LIU_YANZHAO
  • LIU_YANZHAO
  • 2017年05月22日 19:17
  • 1580
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Mysql编码引起的Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT)错误
举报原因:
原因补充:

(最多只允许输入30个字)