mysql字符集介绍_MySQL字符集介绍及配置

本文详细介绍了如何查看和修改MySQL的字符集设置,包括全局、数据库、表及列的字符集转换流程。通过`show variables like 'character%'`和`alter database/table/column`等命令,你可以临时或永久改变字符集。了解这些步骤对于确保数据正确存储和显示至关重要。
摘要由CSDN通过智能技术生成

[TOC]

1.MySQL编码集

查看MySQL支持的字符集

mysql> show character set;

查看MySQL当前的字符集

mysql> show variables like 'character%';

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

| 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 (0.00 sec)

或者使用status命令或者\s命令

上面的字符集是MySQL5.7.x安装好默认的字符集

命令的官网解释:

2.修改字符集

临时修改

-- set [global] variable_name=charset;

mysql> set global character_set_server=utf8;

永久修改

在my.cnf文件中指定

[client]

default-character-set=utf8

影响参数:

character_set_client

character_set_connection

character_set_results

[mysqld]

character-set-server=utf8

影响参数:

character_set_database

character_set_server

3.MySQL数据库中字符集转换流程

MySQL收到请求时将请求数据从character_set_client转换为character_set_connection

进行内部操作前将请求数据从character_set_connection转换为内部操作字符集,其确定方法如下

使用每个数据字段的CHARACTER SET设定值

若上述值不存在,则使用对应数据表的DEFAULT CHARACTER SET设定值(MySQL扩展,非SQL标准)

若上述值不存在,则使用对应数据库的DEFAULT CHARACTER SET设定值

若上述值不存在,则使用character_set_server设定值

将操作结果从内部操作字符集转换为character_set_connection

将响应数据从character_set_connection转为character_set_client

执行SQL语句时信息的路径是这样的

信息输入路径:client → connection → server;

信息输出路径:server → connection → results.

4.修改现有字符集

修改数据库的字符集

-- alter database db_name character set charset;

mysql> alter database snail character set utf8;

修改表的字符集

-- alter database table_name character set charset;

mysql> alter table people character set utf8;

修改列的字符集

-- alter table table_name change column_name column_name varchar(10) character set charset;

mysql> alter table people change name name varchar(10) character set utf8;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值