服务器 频道

mysql中的数据编码

  【IT168 服务器学院】1 character set和collation的区别

  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的了。

0
相关文章