ef 数据迁移mysql_mysql实验--不同字符集数据库迁移步骤演示

概述

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


1、创建测试数据库

create database t1 default character set gbk collate gbk_chinese_ci;create database t2 default character set utf8 collate utf8_general_ci;use t1;create table t11(id int,name varchar(10),primary key(id)) engine=innodb default charset=utf8;create table t12(id int,name varchar(10),primary key(id)) engine=innodb default charset=gb2312;use t2;create table t21(id int,name varchar(10),primary key(id)) engine=innodb default charset=utf8;create table t22(id int,name varchar(10),primary key(id)) engine=innodb default charset=gb2312;
2fc47e8d6bd6ba157548e193a961158a.png
1fcb2156849c007ef7a983a5c56ff5cd.png

2、模拟数据

use t1;insert into t11 values(1,'hwb');insert into t11 values(2,'hwb2');insert into t12 values(1,'hwb');insert into t12 values(2,'hwb2');​use t2;insert into t21 values(1,'hwb');insert into t21 values(2,'hwb2');insert into t22 values(1,'hwb');insert into t22 values(2,'hwb2');
f8d0148464967d3478d0f6570d283ff4.png
64034937a1594b3ea68efccce032fa27.png
96e71999f8239152de2998a00ec54d10.png

3、导出数据库

mysqldump -u root -p t1 > /tmp/t1_old.sqlmysqldump -u root -p t2 > /tmp/t2_old.sql
20e2104aca2938a2009092e39c7f1d8b.png

4、转换编码

--如果你是想转成utf-8,就在t参数后面写上。以前字符集是gb2312就在-f参数后面写上。iconv -t utf-8 -f gb2312 -c /tmp/t1_old.sql > /tmp/t1_new_utf8.sqliconv -t utf-8 -f gb2312 -c /tmp/t2_old.sql > /tmp/t2_new_utf8.sql
f33db74939dc76bd942fb5c6946f2018.png
54ecb6960c3855d99d459c35e7e32666.png

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.sql​sed '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
75240d6ac9b5d9369eb063433824b25d.png
1e8b6077dc99721631a88785b48da94c.png
091e1cec660145e3964785b0b6dfd413.png

6、建新库

create database t3 default character set utf8 collate utf8_general_ci;create database t4 default character set utf8 collate utf8_general_ci;
1b70a81aa8964c3af4e4c652c554e7ac.png

7、导入

use t3;source /tmp/t1_new_utf8_new2.sql;use t4;source /tmp/t2_new_utf8_new2.sql;

8、测试

5c6d11c32158d7a95e4ea160b652bb9e.png
49916589b98906444495d513eaf8cb01.png

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


觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~

74e89eb29721cb59fcf4a3b4baafd537.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值