下面模拟将Latin1字符集的数据库修改为GBK字符集的实际过程
1,导出表结构
<code>mysqldump -uroot -p </code><code>--default-character-set=latin1 -d dbname >alltable.sql;</code>
<code>--default-character-set=gbk 表示以GBK字符集进行连接</code>
<code>-d 只导出表结构</code>
2,编辑alltable.sql 将Latin1改成GBK
可以sed批量替换
3,确保数据库不再更新,导出所有数据
<code>mysqldump -uroot -p123456 </code><code>--quick --no-create-info --extended-insert </code>
<code>--default-character-set=latin1 dbname >alldata.sql</code>
参数说明:
--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,创建库
<code>create</code> <code>database</code> <code>dbname </code><code>default</code> <code>character</code> <code>gbk;</code>
6,创建表,执行alltable.sql
<code> </code><code>mysql -uroot -p dbanme <alltable.sql</code>
7,导入数据
<code>mysql -uroot -p dbanme <alldata.sql</code>
总结: latin1---->gbk
1, 导出表结构,sed 批量修改字符集为gbk
2, 导出所有数据
3, 修改mysql服务器和客户端的编码为gbk
4, 删除原有的库,表以及数据
5,导入新的建库以及建表的语句
6,导入mysql的所有数据
本文转自crazy_charles 51CTO博客,原文链接:http://blog.51cto.com/douya/1787941,如需转载请自行联系原作者