MySQL - 关于MySQL中的8个 character_set 变量说明

MySQL - 关于MySQL中的8个 character_set 变量说明一 查看 character set 变量 show variables like char 二 对 8 个变量解释 变量名 解释 character set client 主要用来设置客户端使用的字符集 character set connection 主要用来设置连接数据库时的字符集

大家好,我是讯享网,很高兴认识大家。

一、查看character_set 变量

show variables like '%char%';

讯享网


讯享网

二、对8个变量解释

变量名 解释
character_set_client 主要用来设置客户端使用的字符集。
character_set_connection 主要用来设置连接数据库时的字符集,如果程序中没有指明连接数据库使用的字符集类型则按照这个字符集设置。
character_set_database 主要用来设置默认创建数据库的编码格式,如果在创建数据库时没有设置编码格式,就按照这个格式设置。
character_set_filesystem 文件系统的编码格式,把操作系统上的文件名转化成此字符集,即把 character_set_client转换character_set_filesystem, 默认binary是不做任何转换的。
character_set_results 数据库给客户端返回时使用的编码格式,如果没有指明,使用服务器默认的编码格式。
character_set_server 服务器安装时指定的默认编码格式,这个变量建议由系统自己管理,不要人为定义。
character_set_system 数据库系统使用的编码格式,这个值一直是utf8,不需要设置,它是为存储系统元数据的编码格式。
character_sets_dir 这个变量是字符集安装的目录。

以上这些参数如何起作用:

1.库、表、列字符集的由来

  ①建库时,若未明确指定字符集,则采用character_set_server指定的字符集。

  ②建表时,若未明确指定字符集,则采用当前库所采用的字符集。

  ③新增时,修改表字段时,若未明确指定字符集,则采用当前表所采用的字符集。

2.更新、查询涉及到得字符集变量

  更新流程字符集转换过程:character_set_client-->character_set_connection-->表字符集。

  查询流程字符集转换过程:表字符集-->character_set_result

3.character_set_database

  当前默认数据库的字符集,比如执行use xxx后,当前数据库变为xxx,若xxx的字符集为utf8,那么此变量值就变为utf8(供系统设置,无需人工设置)。

三、更改上述字符集

讯享网set character_set_XXX = “utf8”;

//xxx:是变量名,选择自己需要修改的补充。

四、MySQL字符编码转换原理

mysql Server收到请求时将请求数据从 character_set_client 转换为 character_set_connection
进行内部操作前将请求数据从 character_set_connection 转换为内部操作字符集,步骤如下 
  A. 使用每个数据字段的 CHARACTER SET 设定值; 
  B. 若上述值不存在,则使用对应数据表的字符集设定值 
  C. 若上述值不存在,则使用对应数据库的字符集设定值; 
  D. 若上述值不存在,则使用 character_set_server 设定值。
最后将操作结果从内部操作字符集转换为 character_set_results


友情参考:MySQL之字符集-校对规则 

小讯
上一篇 2025-02-27 20:05
下一篇 2025-01-07 12:03

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/35813.html