MySQL的几个character_set变量的说明

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

参考: http://www.th7.cn/db/mysql/201412/84636.shtml

 

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,如下图:

wKioL1jzkWqjFMw-AAAig-BuuFY382.png


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

wKioL1jzkWvg80stAAA_btuOlgc242.png

可以看到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

wKiom1jzkZiAG52hAAAq1gwuLeo931.png


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

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

default-character-set=latin1

也可以登录进去后,执行set 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

不清楚、。。。











本文转自 lirulei90 51CTO博客,原文链接:http://blog.51cto.com/lee90/1916511,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
存储 SQL 关系型数据库
MySQL存储过程 if、case、while、loop、游标、变量、条件处理程序
MySQL存储过程 if、case、while、loop、游标、变量、条件处理程序
41 0
|
8月前
|
关系型数据库 MySQL
|
3月前
|
存储 关系型数据库 MySQL
认识MySQL数据库中用户自定义变量
认识MySQL数据库中用户自定义变量。
39 0
|
4月前
|
存储 SQL 关系型数据库
⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..
⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..
43 0
|
4月前
|
缓存 关系型数据库 MySQL
MySQL - 数据库中的系统变量和用户变量详解
MySQL - 数据库中的系统变量和用户变量详解
101 0
|
4月前
|
存储 SQL 关系型数据库
MySQL基础-变量/流程控制/游标/触发器
MySQL基础-变量/流程控制/游标/触发器
|
7月前
|
存储 关系型数据库 MySQL
MySql 字符串类型 - enum、set
MySql 字符串类型 - enum、set
41 0
|
8月前
|
SQL 关系型数据库 MySQL
MySQL变量使用与介绍之为查询结果增加序号列和自定义序号列
SQL三:用户表(包含字段有:用户ID[自增]、姓名、性别、民族、出生日期、身份证号),无论查询条件如何,要求查询的结果显示一个行号列(即:第一行显示1,第二行显示2,第三行显示3,依此类推)
191 0
|
8月前
|
存储 关系型数据库 MySQL