由于basebase的表太多,或者数据量太大,利用mysqldump要很长时间,而且中间出现问题又无法接着做。另外这是一个单线程的工具,所以写了一个小脚本,可以一张一张表来导出数据:
1.首先把数据库里的表明导出来:
mysql -h 192.168.1.101 - P3306 -u admin -padmin -A -e "use targetdb; show tables" > table_name.
2.脚本:
#!/bin/sh
while read -r line
do
mysqldump -uadmin -padmin ${1} $line > ${3}/${1}_$line.sql
done < ${2}
${1} : 需要导出的DataBASE
${2}: 表名存放的文件
${3}:导出文件存放的目录
导入的脚本:
#!/bin/sh
ls ${1} > table.tmp
while read line
do
mysql -S/home/data/acctdb.sock -uroot -A -e "use ad;source ${1}/$line;"
done < table.tmp