科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道mysql中的数据编码

mysql中的数据编码

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

mysql 4.1版本后,对编码的支持大大加强,这是它自己的说法。

来源:LUPA 2008年5月22日

关键字: 数据库 技巧 MySQL

  • 评论
  • 分享微博
  • 分享邮件
mysql 4.1版本后,对编码的支持大大加强,这是它自己的说法:

MySQL 4.1 can do these things for you: 
Store strings using a variety of character sets 
Compare strings using a variety of collations 
Mix strings with different character sets or collations in the same server, 
the same database, or even the same table 
Allow specification of character set and collation at any level 
In these respects, not only is MySQL 4.1 far more flexible than MySQL 4.0, 
it also is far ahead of other DBMSs
见:http://dev.mysql.com/doc/mysql/en/charset-general.html

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

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章