mysql和admin中文問題

MYSQL錯誤:Illegal mix of collations (latin1_swedish_ci,COERCIBLE) and (gbk_chinese_ci,COERCIBLE) for operation '=' 一個解決辦法


異常的意思是:字段字符集編碼不同,不合法的連接。


用show full columns from tenant;命令查看tenant表各個字段的字符編碼。

再用show full columns from employees;命令查看employees表各個字段的字符編碼。


發現 tenant中的unitno字段和 employee中的unitno字段的字符編碼類型不一致。一個是GBK的,一個是GB2312的。


然後用

ALTER TABLE `tenant` CHANGE `unitno` `unitno` VARCHAR( 32) CHARACTER SET gb2312 COLLATE gb2312_bin NOT NULL

命令修改tenant表中的nuitno字段的字符編碼爲gb2312類型。保證與整個數據庫的字符編碼gb2312一致。

 

或者使用alter table tenant convert to character set gb2312;命令,把整個表的字符編碼設爲gb2312。


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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章