Heim > Datenbank > MySQL-Tutorial > 对mysql Illegal mix of collations(gbk_chinese_ci,IMPLICIT) a_MySQL

对mysql Illegal mix of collations(gbk_chinese_ci,IMPLICIT) a_MySQL

WBOY
Freigeben: 2016-06-01 13:31:20
Original
1035 Leute haben es durchsucht

bitsCN.com

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

 

对于常见的乱码问题,有的在数据库本身已经为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 '='
Nach dem Login kopieren
Nach dem Login kopieren

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

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

进入命令行模式,

如果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) 
Nach dem Login kopieren

依次执行:

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也可以
Nach dem Login kopieren

然后执行:

SET collation_server = gb2312_chinese_ciSET collation_database = gb2312_chinese_ciSET collation_connection =gb2312_chinese_ci
Nach dem Login kopieren

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

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

 

 

bitsCN.com
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage