码迷,mamicode.com
首页 > 其他好文 > 详细

9.2 第九章 字符集

时间:2017-03-31 13:23:21      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:集中   end   可见   creat   charset   检索   数据导出   文件中   定义   

MySQL 的字符集和校对规则有4 个级别的默认设置:服务器级、数据库级、表级和字
段级。它们分别在不同的地方设置,作用也不相同。

  说明:什么是校对规则? 例如:GBK 的校对规则,其中gbk_chinese_ci 是默认的校对规则,大小写不敏感的,gbk_bin 按照编码的值进行比较,是大小写敏感的。

如何查看字符集和校对规则

  1. 服务器级:【查看字符集】show variables like ‘character_set_server‘;    【查看校对规则】show variables like ‘collation_server‘;
  2. 数据库级:【查看字符集】show variables like ‘character_set_database ‘ 【查看校对规则】show variables like ‘ collation_database ‘
  3. 表级:【查看字符集】【查看校对规则】 show create table 表名;
  4. 字段级:【查看字符集】【查看校对规则】 show full columns from 表名;

 

 

9.7 字符集的修改步骤

如果在应用开始阶段没有正确的设置字符集,在运行一段时间以后才发现存在不能满足要求
需要调整,又不想丢弃这段时间的数据,那么就需要进行字符集的修改。字符集的修改不能
直接通过“alter database character set ***”或者“alter table tablename character set ***”命
令进行,这两个命令都没有更新已有记录的字符集,而只是对新创建的表或者记录生效。已
有记录的字符集调整,需要先将数据导出,经过适当的调整重新导入后才可完成。


以下模拟的是将latin1 字符集的数据库修改成GBK 字符集的数据库的过程。
(1)导出表结构:
mysqldump -uroot -p --default-character-set=gbk -d databasename> createtab.sql
Linux公社 www.linuxidc.com
139
其中--default-character-set=gbk 表示设置以什么字符集连接,-d 表示只导出表结构,
不导出数据。


(2)手工修改createtab.sql 中表结构定义中的字符集为新的字符集。


(3)确保记录不再更新,导出所有记录。
mysqldump -uroot -p --quick --no-create-info --extended-insert
--default-character-set=latin1 databasename> data.sql


? --quick:该选项用于转储大的表。它强制mysqldump 从服务器一次一行地检索表中
的行而不是检索所有行,并在输出前将它缓存到内存中。
? --extended-insert:使用包括几个VALUES 列表的多行INSERT 语法。这样使转储文件
更小,重载文件时可以加速插入。
? --no-create-info:不写重新创建每个转储表的CREATE TABLE 语句。
? --default-character-set=latin1:按照原有的字符集导出所有数据,这样导出的文件中,
所有中文都是可见的,不会保存成乱码。


(4)打开data.sql,将SET NAMES latin1 修改成SET NAMES gbk。


(5)使用新的字符集创建新的数据库。

create database databasename default charset gbk;


(6)创建表,执行createtab.sql。
mysql -uroot -p databasename < createtab.sql


(7)导入数据,执行data.sql。
mysql -uroot -p databasename < data.sql


注意:选择目标字符集的时候,要注意最好是源字符集的超级,或者确定比源字符集的字库更
大,否则如果目标字符集的字库小于源字符集的字库,那么目标字符集中不支持的字符
倒入后会变成乱码,丢失一部分数据。例如,GBK 字符集的字库大于GB2312 字符集,
那么GBK 字符集的数据,如果导入GB2312 数据库中,就会丢失GB2312 中不支持的那
部分汉字的数据。

 


 

时间:2017-03-31 11:41:00 

9.2 第九章 字符集

标签:集中   end   可见   creat   charset   检索   数据导出   文件中   定义   

原文地址:http://www.cnblogs.com/chxbar/p/6650612.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!