您的位置:首页 > 数据库 > MySQL

MySQL5.6编码学习

2016-03-22 15:33 489 查看
一、查看编码

1、查看跟编码有关的变量: show variables like "char%":未使用use database前,database变量为创建数据库的默认值;进入某数据库后,database变量值为当前数据库的编码类型。

主要学习以下变量

set character_set_client

set character_set_connection

set character_set_database

set character_set_results

2、查看数据库编码:show create database dbname;

3、查看数据表编码:show create table tbname;

4、查看当前数据库状态(包括编码):status; 

二、一些总结

1、load data infile “...” into table

该语句可以将文本文件中数据直接导入数据库。正确导入数据需要 当前table、待导文本文件2者编码一致,否则会出现乱码导致导入失败。

推测:导入sql文件原理类似,有待验证。

2、mysqldump 

--default-character-set=utf8加入该参数,可以指定导出sql文件的编码,默认与results变量保持一致。

3、使用select查询时,出现中文乱码,跟character_set_results变量有关,该变量的值要与客户端使用的编码一致,否则显示为乱码。

例如,windows cmd使用的是gbk编码,则set character_set_results=gbk就可以显示中文,不论table本身的编码是什么,跟client、connection变量也无关。

例如,linux默认使用utf8编码,如果查询语句中出现中文,则需要set character_set_client=utf8,来告诉服务器输入得是utf8编码,否则查询不成功。

4、select  ... from ... into outfile "" character set gkb, 可以指定导出文件的编码格式。

三、配置文件

linux位置/etc/my.cnf

[mysqld]标签下加入character_set_server=utf8, 可以将character_set_server、character_set_database两个变量的默认值设置为utf8;

[mysql]标签下加入default-character-set=utf8,可以将client、connection、results三个变量默认值设置为utf8,类似set names utf8,但set name为临时变更,重连恢复默认值;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: