調整MYSQL校對規則
gbk_bin是二進制存儲.區分大小寫的
gbk_chinese_ci不區分大小寫
1.服務端調整
[mysqld]
default-character-set=gbk #對MYSQL5.1版本增加這一項 --default-character-set is removed in MySQL 5.5.
default-collation=gbk_bin #對MYSQL5.1版本增加這一項
character-set-server=gbk #對MYSQL5.5版本增加這一項
collation-server=gbk_bin #對MYSQL5.5版本增加這一項
但是建立數據庫時如果不指定COLLATTION,則從服務器默認繼承gbk_chinese_ci
www.2cto.com
2.客戶端調整
mysql>show variables like 'collation_%';#調整前
+---------------------------------------------+
|variable_name |value |
|----------------------------------------------
collation_connection |gbk_chinese_ci |
|----------------------------------------------
collation_database |gbk_bin | -->服務端調整後 (調整前為gbk_chinese_ci)
|----------------------------------------------
collation_server |gbk_bin | -->服務端調整後 (調整前為gbk_chinese_ci)
|----------------------------------------------
mysql>set names 'gbk' collate 'gbk_bin';#進行調整後,再看下面
mysql>show variables like 'collation_%';
+---------------------------------------------+
|variable_name |value |
|----------------------------------------------
collation_connection |gbk_bin |
|----------------------------------------------
collation_database |gbk_bin |
|----------------------------------------------
collation_server |gbk_bin |
|----------------------------------------------
www.2cto.com
3. 可通過命令檢查表的規則
mysql>show full columns from tbz;
4. 建立數據庫,表時指定規則
CREATE DATABASE IF NOT EXISTS TEST DEFAULT CHARACTER SET gbk COLLATE gbk_bin;
CREATE TABLE `tbz` (
`BZ` varchar(3) NOT NULL,
`BZMC` varchar(16) NOT NULL,
`BZBM` varchar(1) DEFAULT NULL,
`SM` varchar(20) DEFAULT NULL,
PRIMARY KEY (`BZ`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk COLLATE gbk_bin ;
5. 顯示當前默認規則 這個默認值怎麼改呢??
mysql>show collation like 'gbk%';
+---------------------------------------------+------------------------------------------ www.2cto.com
|Collation |Charset | Id | Default | Compiled | Sortlen |
|----------------------------------------------------------------------------------------
|gbk_chinese_ci |gbk | 28 | YES | YES | 1 |
|gbk_bin |gbk | 87 | | YES | 1 |
|---------------------------------------------------------------------------------------
6. 字符編碼與校對規則優先級
MySQL的字符集和校對規則有4個級別的默認設置:服務器級、數據庫級、表級和字段級。
推薦在創建數據庫時明確指定字符集和校對規則,避免受到默認值的影響。
作者 蔡磊