character set表示字符集,也就是字符(character)和对应的编码(encoding)合称为character set.
collation是字符间比较的方法,比如binaray, case sensitive, case insensitive。
2 character set, collation的设置
可以通过show variables like "%char"; show variables like "%collation%"分别查看当前的设置情况。
在my.cnf文件中,可以使用:
character-set-server=utf8
collation-server-utf8
设置缺省server的character set, collation,这两个选项从4.1.3版本开始有效。之前版本的设置方法:
default-character-set=utf8
default-collation=utf8
通过上面的设置后,show variables like "%char%"如下所示:
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
show variables like "%collation%"显示:
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-------------------+
3 问题
我希望character-set-client, character-set-results,character-set-connection也是utf8, collation-connection也是utf8_general_ci,不知道在my.cnf中如何设置才能做到?
我目前都是先执行set names ''utf8'',再作进一步查询。
执行set names ''utf8''后,show variables "%char%", show variables "%collation%"显示所有的变量设置都是utf8的了。