zoukankan      html  css  js  c++  java
  • SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8_general_ci,IMPLICIT) and (gb2312_chinese_ci,COERCIBLE) for operation '='

    在操作MySQL数据库时,报“

    error code [1267];

    Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'

    对于常见的乱码问题,有的在数据库本身已经为gbk或gb2312时候,但是查询出来却是乱码,这是因为mysql在连接的过程中还有道编码,因此将连接的编码设为gb2312或utf-8

    即可,如:

    jdbc:mysql://localhost:3306/ipanel?useUnicode=true&characterEncoding=UTF-8

    hibernate和jdbc的参数设置是不一样,但大体相同,网上类似的资料很多。

    最重要的是这个问题:

    Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (gb2312_chinese_ci,IMPLICIT) for operation '='

    相信有很多人碰到,意思是说字符编码不一样,不能进行比较,也就是说数据库内部的编码都不一样,有的数据是

    gbk_chinese_ci,有的数据是gb2312_chinese_ci,因此解决此问题的核心就是将数据库所有的编码进行统一。

    解决方案一:暂时
    //恶心的gb2312不能使用,需要转utf-8再继续
    $where = $where . iconv("gb2312","utf-8"," and USER_NAME='" . $uname . "'");

    解决方案二:

    进入命令行模式,

    如果MySQL数据库已经安装好,可以使用下列SQL命令查看MySQL当前的字符集设置: 
    mysql> SHOW VARIABLES LIKE 'character_set_%'; 
    +--------------------------+----------------------------+ 
    | Variable_name | Value | 
    +--------------------------+----------------------------+ 
    | character_set_client | latin1 | 
    | character_set_connection | latin1 | 
    | character_set_database | latin1 | 
    | character_set_results | latin1 | 
    | character_set_server | latin1 | 
    | character_set_system | utf8 | 
    | character_sets_dir | /usr/share/mysql/charsets/ | 
    +--------------------------+----------------------------+ 
    7 rows in set (0.00 sec) 

    mysql> SHOW VARIABLES LIKE 'collation_%'; 
    +----------------------+-------------------+ 
    | Variable_name | Value | 
    +----------------------+-------------------+ 
    | collation_connection | latin1_swedish_ci | 
    | collation_database | latin1_swedish_ci | 
    | collation_server | latin1_swedish_ci | 
    +----------------------+-------------------+ 
    3 rows in set (0.00 sec)

    依次执行:

    set character_set_client =gb2312; 

    set character_set_connection =gb2312; 

    set character_set_database =gb2312; 

    set character_set_results =gb2312; 

    set character_set_server =gb2312; 

    set character_set_system =gb2312; --此处utf-8也可以

    然后执行:

    SET collation_server = gb2312_chinese_ci


    SET collation_database = gb2312_chinese_ci

    SET collation_connection =gb2312_chinese_ci

    执行完之后,请检查mysql下每个数据库,表,字段是否都是gb2312,不是则改过来,这样子就不会出现

    Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (gb2312_chinese_ci,IMPLICIT) for operation '='这个错误了,网上有资料说要重装,其实根本就不必,改动其编码即可

    *****************************

    PHP5.2+MYSQL5.1+APACHE2.29  IE6,firefor2,firefox3 
          PHP网页向MYSQL数据库插入记录时出现如下问题。 
    Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='        ???????????? 
    解决方法:1.注意PHP网站  charset=UTF-8" 
                  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
                    2.数据库连接设置为 utf8编码 

    <?php 
    # FileName="Connection_php_mysql.htm" 
    # Type="MYSQL" 
    # HTTP="true" 
    $hostname_member = "localhost"; 
    $database_member = "member"; 
    $username_member = "root"; 
    $password_member = "123456"; 
    $member = mysql_pconnect($hostname_member, $username_member, $password_member) or trigger_error(mysql_error(),E_USER_ERROR); 
    mysql_query("set names gbk"); 
    ?> 
              请修改为  mysql_query("set names utf8"); 
              中文问题花去一天时间,请注意php和MYSQL编码发送相同问题。与MYSQL数据库编码无关 
              有问题联系 

  • 相关阅读:
    deeplearning.ai 卷积神经网络 Week 1 卷积神经网络
    deeplearning.ai 构建机器学习项目 Week 2 机器学习策略 II
    deeplearning.ai 构建机器学习项目 Week 1 机器学习策略 I
    deeplearning.ai 改善深层神经网络 week3 超参数调试、Batch Normalization和程序框架
    deeplearning.ai 改善深层神经网络 week2 优化算法
    deeplearning.ai 改善深层神经网络 week1 深度学习的实用层面
    cs231n spring 2017 lecture8 Deep Learning Networks
    cs231n spring 2017 lecture7 Training Neural Networks II
    cs231n spring 2017 lecture6 Training Neural Networks I
    cs231n spring 2017 Python/Numpy基础
  • 原文地址:https://www.cnblogs.com/qiudongxu/p/7388101.html
Copyright © 2011-2022 走看看