程序员阿宾的故事:
唉,今天使用 show variables like'character%'命令查看了下数据库编码,发现好多有关的编码,一时间不知道要修改哪一个,于是乎一天啥也没干,刨根问底,弄清了各个属性的编码的含义,第二天就被老板开了。
一、查看各个变量的命令
MySQL命令行输入show variables like'character%得到如下结果:

二、各个变量的含义
- character_set_client:客户端来源数据使用的字符集,也就是客户端发过来的查询语句使用的什么字符集
- character_set_connection:MySQL接受到用户查询后,按照character_set_client将其转化为character_set_connection设定的字符集。
- character_set_results:查询结果编码的字符集
- character_set_database:当前选中数据库的默认字符集
- character_set_server:默认的内部操作字符集
- character_set_system:系统元数据(字段名等)字符集
三、离职交接
临走我把上面的写成交接文档给了老板,自己的笔记上我就写了几句话
1、mysql提供了四个等级的默认字符集以及比较规则,分别是服务器、数据库、表、列级别的
2、character_set_server决定了数据库服务器的默认编码;
3、character_set_database决定了新建数据库的默认字符集;
数据库的字符集又决定了新建表的默认字符集;
表的字符集又决定了字段的默认字符集;如果没有通过DEFAULT CHARACTER SET=xxx来改变表的字符集,则新表就使用character_set_database指定的字符集;
四、我脑子里剩下的
到最后,我脑子里就剩一句话了,character_set_database 最有用,修改它就完事了。
alter database boss_authmanager character set utf8;
五、面试
若干天后,我去新公司面试,面试官问到这个问题,我一句话就说完了,面试官让我滚……
本文深入探讨MySQL数据库中字符集的设置与应用,包括character_set_client、character_set_connection、character_set_results、character_set_database等关键变量的含义及作用。通过实际案例分析,帮助读者理解如何正确配置和使用字符集,避免数据编码错误。
212

被折叠的 条评论
为什么被折叠?



