1. 字符集定义

1.1 什么是字符集(Charset)

字符集:是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。

1.2 MySQL数据库的字符集

1)字符集(CHARACTER)

2)校对规则(COLLATION)

1.3 MySQL中常见的字符集

1)UTF8
2)LATIN1
3)GBK

1.4 常见校对规则

1)ci:大小写不敏感
2)cs或bin:大小写敏感

1.5 查看字符集

  1. mysql> show charset;
  2. mysql> show collation

2. 字符集设置

2.1 操作系统级别

  1. [root@db01 ~]# source /etc/sysconfig/i18n
  2. [root@db01 ~]# echo $LANG
  3. zh_CN.UTF-8

2.2 MySQL实例级别

方法1:在编译安装时候就指定如下服务器端字符集。

  1. cmake .
  2. -DDEFAULT_CHARSET=utf8 \
  3. -DDEFAULT_COLLATION=utf8_general_ci \
  4. -DWITH_EXTRA_CHARSETS=all \

方法2:在配置文件中设置字符集

  1. [root@db01 ~]# vim /etc/my.cnf
  2. [mysqld]
  3. character-set-server=utf8

2.3 建库级别

  1. mysql> create database oldboy charset utf8 default collate = utf8_general_ci;

2.4 建表级别

  1. mysql> CREATE TABLE `test` (
  2. `id` int(4) NOT NULL AUTO_INCREMENT,
  3. `name` char(20) NOT NULL,
  4. PRIMARY KEY (`id`)
  5. ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

生产环境更改数据库(含数据)字符集的方法

  1. mysql> alter database oldboy CHARACTER SET utf8 collate utf8_general_ci;
  2. mysql> alter table t1 CHARACTER SET utf8;