下面模拟将Latin1字符集的数据库修改为GBK字符集的实际过程
1,导出表结构
1
2
3
4
|
mysqldump -uroot -p --default-character-set=latin1 -d dbname >alltable.sql;
--default-character-set=gbk 表示以GBK字符集进行连接 -d 只导出表结构 |
2,编辑alltable.sql 将Latin1改成GBK
可以sed批量替换
3,确保数据库不再更新,导出所有数据
1
2
|
mysqldump -uroot -p123456 --quick --no-create-info --extended-insert
--default-character-set=latin1 dbname >alldata.sql |
参数说明:
--quick:用于转储大的表,强制mysqldump从服务器一次一行的检索数据而不是检索所有的行,并输出前cache到内存中
--no-create-info:不创建create table 语句
--extended-insert: 使用包括几个values列表的多行insert语法,这样文件更小,ID也小,导入数据时候非常快
--default-character-set=latin1:按照原有的字符集导出数据,这样导出的文件中,所有中文都是课件的不会保存成乱码
4,打开data.sql 将set names latin1 修改成set names gbk;
加入配置文件中已经全部配置好字符集,这一步可以不操作。推荐执行修改配置文件
5,创建库
1
|
create database dbname default character gbk;
|
6,创建表,执行alltable.sql
1
|
mysql -uroot -p dbanme <alltable.sql
|
7,导入数据
1
|
mysql -uroot -p dbanme <alldata.sql |
总结: latin1---->gbk
1, 导出表结构,sed 批量修改字符集为gbk
2, 导出所有数据
3, 修改mysql服务器和客户端的编码为gbk
4, 删除原有的库,表以及数据
5,导入新的建库以及建表的语句
6,导入mysql的所有数据
本文转自crazy_charles 51CTO博客,原文链接:http://blog.51cto.com/douya/1787941,如需转载请自行联系原作者