mysql批量导出导入

#!/bin/env bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
clear

rusername=""
rpasswd=""
rhost=""
lusername=""
lpasswd=""
lhost="127.0.0.1"

#连接旧数据库把原来的多个数据库赋值给变量。
mysqldata=`mysql -h$rhost-u$rusername-p$rpasswd-e"show databases"|grep -vE "mysql|information_schema|performance_schema|Database"`

#循环把旧的数据库在新的服务器上新建和导入
for i in ${mysqldata[@]} ; do
#新建数据库
	mysql -u$lusername -p$lpasswd -e"CREATE DATABASE $i CHARACTER SET utf8"
#导出数据库后用管道导入数据库
	mysqldump --opt -h$rhost -u$rusername -p$rpasswd $i | mysql -u$lusername -p$lpasswd $i
#如果需要从本地把数据库导出到远程服务器,远程服务器的数据库只配置为本地访问权限,同时开启的22端口,可以考虑使用以下命令
#mysqldump --opt -h$lhost -u$lusername -p$lpasswd $i |ssh -C user@rhost "mysql -u$rusername -p$rpasswd $i"
done

编程技巧