云服务器mysql入门教程之修改mysql的默认字符集

 

核心提示:mysql数据库有默认有两大类字符集
1. 服务器端字符集  对应查看命令: show global variables like '%chara%'; 
2. 客户端端字符集  对应查看命令: show variables like '%chara%';  或者  show session variables like '%chara%';
1.jpg 


客户端和服务端数据交换的数据流,如下:
向数据库中插入:client→connection→server
从数据库中查询:server→connection→results


以上图为例,发现服务器端的字符集已经全部变成了utf8,而客户端字符集中,“character_set_client”、“character_set_connection”、“character_set_results”的值还是latin1 ,
server里utf8的数据,传入connection转为latin1,再传入results转为latin1,utf8页面又把results转过来。而latin1和utf8两种字符集并不兼容,这样在客户端显示的查询结果中如果有中文就会显示乱码。
这就是为什么数据库中的数据明明是utf8字符集,在客户端中显示却是乱码的原因。

设置mysql默认字符集的办法:
修改 mysql 配置文件实现
① Linux服务器
# vi /etc/my.cnf
mysql 5.5版本以下这样修改
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8

mysql 5.5版本,及以上版本改为:
[client]
default-character-set = utf8
[mysqld]
character-set-server = utf8
修改好配置文件后,重启mysql服务使修改生效
# service mysqld restart

②Windows服务器
在mysql的安装目录中,修改 my.ini 这个mysql的配置文件 
mysql 5.5版本以下这样修改
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8

mysql 5.5版本,及以上版本改为:
[client]
default-character-set = utf8
[mysqld]
character-set-server = utf8
修改好配置文件后,重启mysql服务使修改生效。
windows下的mysql服务一般在服务管理器中重启,cmd命令行中输入 services.msc
回车后会填出服务管理器,找到mysql相关服务,右键重启。

北京凯铧互联科技有限公司(简称凯铧互联)由多名前阿里云资深技术专家创立,核心员工来自阿里巴巴、腾讯等,做为一家综合性方案商,凯铧互联向各行业用户提供基于公有云,私有云,混合云等基于云计算的各种解决方案。

 
本公司销售:阿里云、腾讯云、百度云、天翼云、金山大米云、金山企业云盘!可签订合同,开具发票。
?