MySQL实验中不同字符集数据库迁移步骤是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

今天主要介绍下mysqldump怎么迁移编码不同的数据库,这里用一个实验来演示一下。

1. 创建测试数据库

createdatabaset1defaultcharactersetgbkcollategbk_chinese_ci;createdatabaset2defaultcharactersetutf8collateutf8_general_ci;uset1;createtablet11(idint,namevarchar(10),primarykey(id))engine=innodbdefaultcharset=utf8;createtablet12(idint,namevarchar(10),primarykey(id))engine=innodbdefaultcharset=gb2312;uset2;createtablet21(idint,namevarchar(10),primarykey(id))engine=innodbdefaultcharset=utf8;createtablet22(idint,namevarchar(10),primarykey(id))engine=innodbdefaultcharset=gb2312;

2. 模拟数据

uset1;insertintot11values(1,'hwb');insertintot11values(2,'hwb2');insertintot12values(1,'hwb');insertintot12values(2,'hwb2');uset2;insertintot21values(1,'hwb');insertintot21values(2,'hwb2');insertintot22values(1,'hwb');insertintot22values(2,'hwb2');

3. 导出数据库

mysqldump-uroot-pt1>/tmp/t1_old.sqlmysqldump-uroot-pt2>/tmp/t2_old.sql

4. 转换编码

如果你是想转成utf-8,就在t参数后面写上。以前字符集是gb2312就在-f参数后面写上。

iconv-tutf-8-fgb2312-c/tmp/t1_old.sql>/tmp/t1_new_utf8.sqliconv-tutf-8-fgb2312-c/tmp/t2_old.sql>/tmp/t2_new_utf8.sql

5. 修改 /tmp/new_utf8.sql文件的字符编码

sed's/CHARSET=gbk/CHARSET=utf8/g'/tmp/t1_new_utf8.sql>/tmp/t1_new_utf8_new.sqlsed's/CHARSET=gb2312/CHARSET=utf8/g'/tmp/t1_new_utf8_new.sql>/tmp/t1_new_utf8_new2.sqlsed's/CHARSET=gbk/CHARSET=utf8/g'/tmp/t2_new_utf8.sql>/tmp/t2_new_utf8_new.sqlsed's/CHARSET=gb2312/CHARSET=utf8/g'/tmp/t2_new_utf8_new.sql>/tmp/t2_new_utf8_new2.sql

6. 建新库

createdatabaset3defaultcharactersetutf8collateutf8_general_ci;createdatabaset4defaultcharactersetutf8collateutf8_general_ci;

7. 导入

uset3;source/tmp/t1_new_utf8_new2.sql;uset4;source/tmp/t2_new_utf8_new2.sql;

8. 测试

到这里就完成了数据库及表不同字符集的迁移测试。

关于MySQL实验中不同字符集数据库迁移步骤是怎样的问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。