快速地批量复制mysql数据库

本文介绍了一种在Linux环境下批量复制MySQL数据库的方法,适用于需要从一台服务器(如拥有100个数据库)迁移到另一台服务器的场景。通过一系列Shell命令实现了数据库名称的获取、格式整理及数据库的创建与数据导入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明:适用于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/bash

srcip="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:$count
declare -i i=0;
while [ "${dbname[$i]}" != "" ]
do
db=${dbname[$i]}
declare -i num=$i+1
echo now $num/$count dbname:$db
mysqladmin -h$desip -u$desuser -p$despwd create $db
mysqldump --opt -h$srcip -u$srcuser -p$srcpwd $db|mysql-h$desip -u$desuser -p$despwd $db
i=$i+1

done



结果如下:

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相同的所有数据库.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值