java.sql.SQLException: Illegal mix of collations

  java.sql.SQLException: Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)

        这是字符集的问题
  首先、查看mysql的my.cnf,确认为utf8
  mysql> show   variables   like   "%char%";
  +--------------------------+----------------------------+
  | Variable_name          | Value                          |
  +--------------------------+----------------------------+
  | character_set_client     | utf8                         |
  | character_set_connection | utf8                    |
  | character_set_database   | utf8                    |
  | character_set_filesystem | binary                  |
  | character_set_results    | utf8                       |
  | character_set_server     | utf8                       |
  | character_set_system     | utf8                      |
  | character_sets_dir       | /usr/share/mysql/charsets/ |
  +--------------------------+----------------------------+
  mysql> show   variables   like   "%coll%";
  +----------------------+-----------------+
  | Variable_name        | Value           |
  +----------------------+-----------------+
  | collation_connection | utf8_general_ci |
  | collation_database   | utf8_general_ci |
  | collation_server     | utf8_general_ci |
  +----------------------+-----------------+
  二、查看表以及字段的的字符集是否为utf8

         解决办法:

        主要mysql编码碰到了问题,这里建议将mysql数据库的中文编码修改为utf8(所有地方)。
  1)将mysql安装目录下的my.ini编码都修改为utf8
  2)新建数据库时,选用utf8编码
  3)新建varchar列时选用utf8编码,
  保证解决编码问题!
  ----------
  常用命令备忘
  SHOW VARIABLES LIKE 'character_set_%';
  SHOW VARIABLES LIKE 'collation_%';
  SET collation_server = gb2312_chinese_ci
  set names = utf8

你可能感兴趣的:(java.sql.SQLException: Illegal mix of collations)