一:查看字符集

1、查看MySQL数据库服务器和数据库MySQL字符集。

mysql> show variables like '%char%';  
+--------------------------+-------------------------------------+------  
| Variable_name            | Value                               |......  
+--------------------------+-------------------------------------+------  
| character_set_client     | utf8                                |......   -- 客户端字符集  
| character_set_connection | utf8                                |......  
| character_set_database   | utf8                                |......   -- 数据库字符集  
| character_set_filesystem | binary                              |......  
| character_set_results    | utf8                                |......  
| character_set_server     | utf8                                |......   -- 服务器字符集  
| character_set_system     | utf8                                |......  
| character_sets_dir       | D:\MySQL Server 5.0\share\charsets\ |......  
+--------------------------+-------------------------------------+------ 

2、查看MySQL数据表(table)的MySQL字符集。

mysql> show table status from sqlstudy_db like '%countries%';  

+-----------+--------+---------+------------+------+-----------------+------  

| Name      | Engine | Version | Row_format | Rows | Collation       |......  

+-----------+--------+---------+------------+------+-----------------+------  

| countries | InnoDB |      10 | Compact    |   11 | utf8_general_ci |......  

+-----------+--------+---------+------------+------+-----------------+------ 

3、查看MySQL数据列(column)的MySQL字符集。

mysql> show full columns from countries;  

+----------------------+-------------+-----------------+--------  

| Field                | Type        | Collation       | .......  

+----------------------+-------------+-----------------+--------  

| countries_id         | int(11)     | NULL            | .......  

| countries_name       | varchar(64) | utf8_general_ci | .......  

| countries_iso_code_2 | char(2)     | utf8_general_ci | .......  

| countries_iso_code_3 | char(3)     | utf8_general_ci | .......  

| address_format_id    | int(11)     | NULL            | .......  

+----------------------+-------------+-----------------+--------  

二:通过my.cnf修改数据库默认字符集

配置文件路径:/etc/my.cnf(重点是mysqld段内红色部分,#部分可选)

[client] default-character-set=utf8

[mysql] default-character-set=utf8

[mysqld] #init_connect=‘SET collation_connection = utf8_unicode_ci’ #init_connect=‘SET NAMES utf8’ character-set-server=utf8 collation-server=utf8_unicode_ci #skip-character-set-client-handshake

注意:

在 mysqld 中使用 default-character-set 设置, mysql 启动会报错而无法启动。

说明:

关于utf8字符集,我们国内默认选择:utf8_general_ci而不是utf8_unicode_ci,

区别在于字符对比上

请看mysql上面的例子:

对与general来说 ß = s 是为true的

但是对于unicode来说 ß = ss 才是为true的,

其实他们的差别主要在德语和法语上,所以对于我们中国人来说,一般使用general,因为general更快。

如果你对德语和法语的对比有更高的要求,才使用unicode,它比general更准确一些(按照德语和法语的标准来说,在对比或者排序上更准确)

看看这个文档:http://dev.mysql.com/doc/refman/5.7/en/charset-unicode-sets.html

另外还有utf8_bin_ci也是比较常用的哦,在字符对比时,unicode和general都不是大小写敏感的,所以如果要求大小写敏感的话,就使用bin。

·End·