set-variable=default-character-set=gbk 加入这个以后 SHOW VARIABLES 什么结果??
to Rekcuf(Rik) ( ) 信誉:100 mysql> show variables like "%colla%"; +----------------------+-------------------+ | Variable_name | Value | +----------------------+-------------------+ | collation_connection | latin1_swedish_ci | | collation_database | gbk_chinese_ci | | collation_server | gbk_chinese_ci | +----------------------+-------------------+ 3 rows in set (0.00 sec)mysql> show variables like "%character%"; +--------------------------+-------------------------------------+ | Variable_name | Value | +--------------------------+-------------------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | gbk | | character_set_results | latin1 | | character_set_server | gbk | | character_set_system | utf8 | | character_sets_dir | D:\MySQL Server 4.1\share\charsets/ | +--------------------------+-------------------------------------+
如果不设置以上的参数,在查询数据库的时候,凡是涉及到char,varchar,text字段的时候会出现类似下面的错误: ERROR 1267 (HY000): Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (lat in1_swedish_ci,COERCIBLE) for operation .....
还要看看你的表是怎样编码的。 我以前也遇到过。SHOW CREATE TABLE tblName; 最后有默认编码的信息。如果跟你的编码设置不一致就会出现上面的错误。表的编码转换可以用(MySQL Version > 4.12) ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;之前的版本可以用: ALTER TABLE tbl_name CHARACTER SET charset_name; (此过程中更改表的编码为 charset_name,也对文本型数据作转换。)
直接加到my.ini中是不行的,加入后mysql启动不起来了
加入这个以后 SHOW VARIABLES 什么结果??
mysql> show variables like "%colla%";
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | gbk_chinese_ci |
| collation_server | gbk_chinese_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)mysql> show variables like "%character%";
+--------------------------+-------------------------------------+
| Variable_name | Value |
+--------------------------+-------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | gbk |
| character_set_results | latin1 |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | D:\MySQL Server 4.1\share\charsets/ |
+--------------------------+-------------------------------------+
ERROR 1267 (HY000): Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (lat
in1_swedish_ci,COERCIBLE) for operation .....
我以前也遇到过。SHOW CREATE TABLE tblName;
最后有默认编码的信息。如果跟你的编码设置不一致就会出现上面的错误。表的编码转换可以用(MySQL Version > 4.12)
ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;之前的版本可以用:
ALTER TABLE tbl_name CHARACTER SET charset_name;
(此过程中更改表的编码为 charset_name,也对文本型数据作转换。)
[mysqld]
default-character-set= gbk
default-collation=gbk_chinese_ci[client]
default-character-set= gbk
SHOW CREATE TABLE tblName;之后看到的字符集是gbk,但是查询还是上面的问题,好像要每个字符型的字段都要设定字符集,这样工程量巨大呀
to XqYuan() ( ):
按照你的方法修改,并且重起了mysql,但是问题依旧