MySQL-字符集与比较规则

本文详细介绍了MySQL中字符集的概念,如何查看和修改服务器及数据库的字符集,以及不同字符集的比较规则,重点强调了UTF-8和UTF-8MB4的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、字符集

1.查看字符集

mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (1.15 sec)

可以看到上述 character_set_database 和 character_set_server 字符集格式为 latin1,在创建数据库\数据表是若没有指定字符集 ,则使用默认字符集;当插入数据中包含中文时,会报错,因此需要修改字符集格式。

2、修改字符集

[root@rqtanc mysql57]# vim /etc/my.cnf

添加以下内容:character_set_server=utf8 ,保存退出

3、重启mysql服务使其生效

[root@rqtanc mysql57]# systemctl restart mysqld.service

4、对已创建的数据库,数据表修改字符集,操作如下:

alter database 数据库名 character set 'utf8mb4';

alter table 数据表名 convert to character set 'utf8mb4'

5、相关说明

级别 说明
character_set_server 服务器级别字符集
character_set_database 当前数据库的字符集
character_set_client 服务器解码请求时使用的字符集
character_set_connection 服务器处理时会把请求字符串从 character_set_client 转换为 character_set_connection
character_set_results 服务器向客户端返回数据时使用的字符集

二、比较规则

1、查看当前数据库服务器支持的字符集(字符编码)列表以及每种字符集的默认排序规则。

mysql> show charset;
+----------+---------------------------------+---------------------+--------+
| Charset  | Description                     | Default collation   | Maxlen |
+----------+---------------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese        | big5_chinese_ci     |      2 |
| dec8     | DEC West European               | dec8_swedish_ci     |      1 |
| cp850    | DOS West European            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值