MySQL字符集

字符集

字符编码

字符在计算机中对应的编码(二进制)

字符集

多个字符集合,常见的有:ASCII字符集,GB2312字符集,Unicode字符集

 

设置客户端所有字符集

如果直接通过cmd 下的mysql.exe来操作msqld.exe 可能会出错。

原因:

1.用户通过mysql.exe来操作mysqld.exe

2.真正SQL执行是mysqld.exe来执行

3.mysql.exe 将数据传入mysqld.exe 的时候,没有告知其对应的符号规则(字符集),而mysqld也没有能力自己判断,就会使用默认的(字符集)

 

解决方案:mysql.exe 客户端在进行数据操作之前将自己所使用的字符集告诉mysqld

cmd 下的mysql.exe默认都只有一个字符集:GBK

 

mysql如何告知mysqld对应字符集的类型是GBK

快捷方式:set names 字符集;

重新进行数据插入:GBK

深层原理:客户端,服务端,连接层

mysql.exe mysqld.exe 之间关系分为三层:

客户端传入数据给服务端:client:character_set_client

服务端返回数据给客户端:server:character_set_results

客户端与服务端之间的连接:connection(中间层):character_set_connection

set names 字符集 本质:一次性打通三层关系的字符集 ,变得一致。

在系统中有三个变量来记录着这三个关系对应的字符集:show variables like ‘character_set_%’;

修改服务器端对应的值: set 变量名=值;

set charaset_set_client=gbk

connection 只是为了方便客户端与服务端进行字符集转换而设,不修改也没有关系。

只要让client:character_set_client server:character_set_results字符集一致就可以了

set names gbk

1.set charaset_set_client=gbk; 为了让服务器识别客户端传来的数据

2.set charaset_set_connection=gbk; 更好的帮助客户端与服务端进行字符集转换

3.set charaset_set_results=gbk;  为了告诉客户端服务端所有的返回的数据字符集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值