字符集

字符集

1.什么是字符集(Charset)

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

#MySQL中常见的字符集
1)UTF8
2)LATIN1
3)GBK

mysql> show charset;
mysql> show collation;

2.字符集校验规则

#规则的创建语法 指定字符集与校验规则
mysql> create database db2 charset utf8 collate utf8_general_ci;
'不加这么一串创建也可以 但是需要默认字符集为utf8 在配置文件里加上就可以
vim /etc/my.cnf
[mysqld]
character_set_server=utf8

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

当你去查询数据时 其实是区分大小写的 但是不敏感

3.统一字符集

工具修改字符集

系统修改字符集

#CentOS6:
[root@db01 ~]# vim /etc/sysconfig/i18n

#CentOS7:
[root@db01 ~]# vim /etc/locale.conf 
LANG="en_US.UTF-8"

4.字符集设置

1.操作系统级别

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

2.MySQL实例级别

#方法1:在编译安装时候就指定如下服务器端字符集。
cmake . 
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
    
#方法2:在配置文件中设置字符集
[mysqld]
character-set-server=utf8

3.建库级别

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

4.建表级别

mysql> create table mysql.oldboy(id int)charset utf8;

#表是跟着库走的,库是什么字符集表就是什么字符集

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

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

6.修改数据库实例字符集

#临时生效
mysql> set character_set = 'gbk';
mysql> set character_set_client = 'gbk';

#全局生效
mysql> set global character_set_client = 'gbk';

#永久生效
vim /etc/my.cnf 
character-set-server=utf8

问题

假设我现在有一万张表,需要修改字符集从utf8到gbk,怎么做?

[root@db02 ~]# mysqldump -A /tmp/full.sql

[root@db02 ~]# vim /tmp/full.sql
:%s#utf8#gbk#g

[root@db02 ~]# mysql < /tmp/full.sql
posted @ 2019-12-03 17:56  干瘪的柠檬  阅读(233)  评论(0)    收藏  举报