快速地批量复制mysql数据库

来源:互联网 发布:大数据医疗行业应用 编辑:程序博客网 时间:2024/05/18 03:02
说明:适用于linux下快速复制多个mysql数据库(如100个库)到另一机器
例: src: 192.168.1.10:3306 nameA pwdA
      des: 192.168.1.20:3306 nameB pwdB



步骤如下:
登陆192.168.1.20

1、
mysql -h192.169.1.10 -unameA -ppwdA -e "show dattabases;" | awk '{print $0}' > tmp
生成包含1.10全部数据库名的临时文件,结果如:
dba
dbb
dbc
dbd
dbe
...
dbn

2、vi tmp
:%s/\n/ /g
将tmp文件中的换行转换为空格,内容如:
dba dbb dbc dbd dbe dbf ... dbn

3、新建sh文件,添加内容如下并执行
#!/bin/bashsrcip="192.168.1.10"srcuser="nameA"srcpwd="pwdA"desip="192.168.1.20"desuser="userB"despwd="pwdB"dbname=(dba dbb dbc dbd dbe dbf dbn)count=${#dbname[@]}echo db count:$countdeclare -i i=0;while [ "${dbname[$i]}" != "" ]dodb=${dbname[$i]}declare -i num=$i+1echo now $num/$count dbname:$dbmysqladmin -h$desip -u$desuser -p$despwd create $dbmysqldump --opt -h$srcip -u$srcuser -p$srcpwd $db|mysql-h$desip -u$desuser -p$despwd $dbi=$i+1done



结果如下:

dq-z@dq-z-tpe420:~/work$ ./db.sh
db count:7
now 1/7 dbname:dba
now 2/7 dbname:dbb
now 3/7 dbname:dbc
now 4/7 dbname:dbd
now 5/7 dbname:dbe
now 6/7 dbname:dbf
now 7/7 dbname:dbn
dq-z@dq-z-tpe420:~/work$

现在192.1168.1.20机器上已经有与1.10相同的所有数据库.


原创粉丝点击