快速的完成百万级MySQL数据迁移

编程基础  收藏
0 / 788

通过mysql的select data into outfile file.txt、load data infile file.txt into table的命令,以导入导出文件的形式完成了百万级数据的迁移。

迁移过程

在源数据库中导出数据文件

select * from user_base into outfile '/data/user.txt';

复制数据文件到目标服务器

zip user.zip /data/user.txt
scp user.zip root@ip:/data/

在目标数据库导入文件

unzip /data/user.zip
load data infile '/data/user.txt' into table user_base(id,appid,openid,unionid,created_at,nickname,gender,avatar_url);

按照这么几个步骤操作,几分钟内就完成了一个百万级数据表的跨服务器迁移工作。

注意项

mysql安全项设置

在mysql执行load data infile和into outfile命令都需要在mysql开启了secure_file_priv选项, 可以通过show global variables like '%secure%';查看mysql是否开启了此选项,默认值Null标识不允许执行导入导出命令。通过vim /etc/my.cnf修改mysql配置项,将secure_file_priv的值设置为空:

[mysqld]  secure_file_priv=''