select data into outfile file.txt、load data infile file.txt into table 的命令,以導(dǎo)入導(dǎo)出文件的形式完成了百萬級數(shù)據(jù)的遷移。
遷移過程 在源數(shù)據(jù)庫中導(dǎo)出數(shù)據(jù)文件
select * from dc_mp_fans into outfile '/data/fans.txt'; 復(fù)制數(shù)據(jù)文件到目標(biāo)服務(wù)器
zip fans.zip /data/fans.txtscp fans.zip root@ip:/data/ 在目標(biāo)數(shù)據(jù)庫導(dǎo)入文件
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); 按照這么幾個步驟操作,幾分鐘內(nèi)就完成了一個百萬級數(shù)據(jù)表的跨服務(wù)器遷移工作。
注意項
mysql安全項設(shè)置 在mysql執(zhí)行l(wèi)oad data infile和into outfile命令都需要在mysql開啟了secure_file_priv選項, 可以通過show global variables like ‘%secure%’;查看mysql是否開啟了此選項,默認值Null標(biāo)識不允許執(zhí)行導(dǎo)入導(dǎo)出命令。