1. 首页>
  2. 腾讯云代理

[技术前沿] mysql入门教程: 6. 修改mysql的默认字符集

腾讯云 2017年01月29日 浏览724

腾讯云代理 腾讯云直播申请 游戏上云

摘要:

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相关服务,右键重启。

欢迎入群交流            

auto_1452.png


原文地址:http://bbs.qcloud.com/thread-5874-1-1.html

相关文章

在线客服
淘宝购买
腾讯云直播申请 title=
+成为腾讯云VIP客户 腾讯云直播申请 客服电话

15818558013

0755-33940501-803

0755-33940501-808