MySQL日常管理 Part 2:字符集

1 MySQL字符集

        MySQL字符集包括校对规则,作用是定义、比较字符串的方式。

1.1 常用字符集

字符集长度(字节)说明
GB23122早期标准
GB180304部分系统支持,少数数据库支持
GBK2非国际标准,支持中文
UTF83中英混合环境,推荐使用

latin1

1MySQL默认字符集
utf8mb44MySQL 5.5支持,兼容UTF8。强烈推荐

1.2 生产环境选择字符集

  • 系统使用语言较多,选择UTF8
  • 仅支持中文、海量数据、运算量大,使用GBK
  • 互联网、移动互联网应用,选择utf8mb4

1.3 查看字符集

show character set;

2 MySQL字符集配置

2.1 MySQL 实例的字符集

--- 编译安装时配置

cmake . 
--DDEFAULT_CHARACTER=utf8 \
--DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all

--- my.cnf的mysqld模块中配置

[mysqld]

character-set-client-handshake = FALSE 
character-set-server = utf8mb4 
collation-server = utf8mb4_unicode_ci 
init_connect=’SET NAMES utf8mb4’

--- 启动mysql时,使用"--character-set-server"指定字符集(不建议)

mysqld --character-set-server=utf8mb4

2.2 MySQL 库的字符集

        库字符集在建库之初配置,若未配置默认与实例字符集一致

--- 建库指定字符集

CREATE DATABASE ocean DEFAULT CHARACTER SET utf8 DEFAULT COLLATE = utf8_general_ci;

--- 查看库字符集

show variables like 'character_set_database%';

show variables like 'collation_database%';

2.3 MySQL 表的字符集

        表字符集在建表之初配置,若未配置默认与库字符集一致

CREATE TABLE `ocean_tab1` ( `id` int(8) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8

2.4 MySQL 客户端的字符集

--- 临时生效配置

set names utf8;

SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

--- 登录时,使用"--default-character-set"指定字符集

mysql --default-character-set=utf8

--- my.cnf的client中配置

[client]
 default-character-set = utf8

--- 查看配置

show variables like 'character_set%';

3 MySQL字符集变更

3.1 MySQL 库字符集

ALTER DATABASE ocean CHARACTER SET latin1 COLLATE = latin1_swedish_ci;

ALTER DATABASE ocean CHARACTER SET utf8 COLLATE = utf8_general_ci;

3.2 MySQL 表字符集

ALTER TABLE ocean_tab1 CHARACTER SET latin1;

ALTER TABLE ocean_tab1 CHARACTER SET utf8;

3.3 MySQL 查看字符集

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
Variable_nameValue
character_set_clientutf8mb4
character_set_connectionutf8mb4
character_set_databaseutf8mb4
character_set_filesystembinary
character_set_resultsutf8mb4
character_set_serverutf8mb4
character_set_systemutf8
character_sets_dir/app/mysql8/share/charsets/
collation_connectionutf8mb4_0900_ai_ci
collation_databaseutf8mb4_0900_ai_ci
collation_serverutf8mb4_0900_ai_ci

        注:collation_connection 、collation_database 、collation_server是非关键参数。

确保一下参数必须为utf8mb4

系统变量描述
character_set_client客户端来源数据使用的字符集
character_set_connection连接层字符集
character_set_database当前选中数据库的默认字符集
character_set_results查询结果字符集
character_set_server默认的内部操作字符集

 

 

相关链接

MySQL日常管理 Part 1:基础篇

MySQL日常管理 Part 3:日志篇

 

参考《MySQL 5.7 Reference Manual

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值