select data into outfile file.txt、load data infile file.txt into table 的命令,以导入导出文件的形式完成了百万级数据的迁移。
迁移过程 在源数据库中导出数据文件
select * from dc_mp_fans into outfile '/data/fans.txt'; 复制数据文件到目标服务器
zip fans.zip /data/fans.txtscp fans.zip root@ip:/data/ 在目标数据库导入文件
unzip /data/fans.zipload data infile '/data/fans.txt' into table wxa_fans(id,appid,openid,unionid,@dummy,created_at,@dummy,nickname,gender,avatar_url,@dummy,@dummy,@dummy,@dummy,language,country,province,city,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy,@dummy); 按照这么几个步骤操作,几分钟内就完成了一个百万级数据表的跨服务器迁移工作。
注意项
mysql安全项设置 在mysql执行load data infile和into outfile命令都需要在mysql开启了secure_file_priv选项, 可以通过show global variables like ‘%secure%’;查看mysql是否开启了此选项,默认值Null标识不允许执行导入导出命令。