阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL的几个character_set变量的说明

114次阅读
没有评论

共计 1447 个字符,预计需要花费 4 分钟才能阅读完成。

MySQL关于 character 有如下 8 个变量:

character_set_client

character_set_connection

character_set_database

character_set_filesystem

character_set_results

character_set_server

character_set_system

character_sets_dir

结论:

    character_set_clientcharacter_set_connectioncharacter_set_results3 个参数值是由客户端每次连接进来设置的,和服务器端没关系。

    我们登陆进 mysql 后,执行 set names utf8; 实际就是同时修改上面的这 3 个参数值的。

环境:

    CentOS6.7x86_64

    Percona Server 5.7 (server段设置的是character-set-server= utf8)

Windows 上使用 CMD 命令行去连接node1,如下图:

MySQL 的几个 character_set 变量的说明

Windows 上使用 SQLyog 命令行去连接node1,如下图:

MySQL 的几个 character_set 变量的说明

可以看到 2 个工具连接到同一个服务器上,显示出的参数却不一样的。

从官方文档中可以看出 character_set_connectioncharacter_set_clientcharacter_set_results 三个字符集什么时候用到。

从实际上可以看到,当客户端连接服务器的时候,它会将自己想要的字符集名称发给 mysql 服务器,然后服务器就会使用这个字符集去设置 character_set_clientcharacter_set_connectioncharacter_set_results 这三个值。如 cmd 是用 gbk,而SQLyog 是用utf8. 

如果我们想告诉 mysql server 自己本次连接想使用latin1,则命令行下可以如下写法:

mysql -uroot -h 192.168.2.11 -pAbcd@1234 –default-character-set=latin1

MySQL 的几个 character_set 变量的说明

此外,要修改上面的 3 个字符集的话,

还可以在 my.cnf[mysql]段里面增加:

default-character-set=latin1

也可以登录进去后,执行 s et names latin1的效果相同。

其他几个参数:

character_set_database

这个是当前所在的数据库字符集。如果没有切换到其他数据库,则 character_set_database 显示的和 character_set_server 一致。

例:切换到一个默认是 gbk 的数据库里,执行 showvariables like ‘character_set_database’; 看到的就是gbk

character_set_filesystem

os 上文件名转化成此字符集,即把 character_set_client 转换 character_set_filesystem 默认 binary 是不做任何转换的

character_set_system

character_set_system是个只读数据不能更改。也没多少改的意义,他是元数据的编码,相信不会有人用中文做数据库名和字段名之类的吧,这个字段和具体存储的数据无关。

character_sets_dir

不清楚、。。。

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/143263.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计1447字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中