linux命令,mysql批量导出多个数据库。单个的是mysqldump -uroot - p 库名 > /***/***.sql;

那我要导出很多呢?... 那我要导出很多呢? 展开
 我来答
匿名用户
推荐于2018-03-08
展开全部

MySql的备份命令

myisam引擎
#mysqldump -uroot -pxxx -A -B -F --master-data=2  -x --events >/opt/name.sql.gz
innodb引擎
#mysqldump -uroot -pxxx  -A -B -F --master-data=2 --events --single-transaction | gzip>/opt/name.sql.gz

--master-data   这个参数在建立slave数据库的时候会用到,当这个参数的值为1的时候,mysqldump出来的文件就会包括CHANGE MASTER TO这个语句,CHANGE MASTER TO后面紧接着就是file和position的记录,file和position记录的位置就是slave从master端复制文件的起始位置。默认情况下这个值是1   当这个值是2的时候,chang master to也是会写到dump文件里面去的,但是不会有上面那个作用了 --master-data=1   (--master-data=2注释)   表示在dump过程中记录主库的binlog和pos点,并在dump文件中不注释掉这一行,即恢复时会执行; -F   切割binlog参数
-A   备份所有库  -B, --databases        备份数据时使用-B参数,会在备份数据中增加建库及use库的语句   使用-B参数,后面可以接多个库,否则只能有一个库,之后的都被认为是表
--single-transaction 适合innodb事务数据库备份(可代替锁表)   设置事务的隔离级别为可重复读,即REPEATABLE READ,这样能保证在一个事务中所有相同的查询读取到同样的数据,也就大概保证了在dump期间,如果其他innodb引擎的线程修改了表的数据并提交,对该dump线程的数据并无影响. :InnoDB 表在备份时,通常启用选项 --single-transaction 来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为:REPEATABLE READ,以确保本次会话(dump)时,不会看到其他会话已经提交了的数据。
-x,--lock-all-tables    Locks all tables across all databases. This is achieved by taking a global read lock for the duration of thewhole dump. Automatically turns --single-transaction and --lock-tables off.
-l, --lock-tables   Lock all tables for read.

yexicheng
2016-06-20 · TA获得超过1.2万个赞
知道大有可为答主
回答量:8857
采纳率:69%
帮助的人:7051万
展开全部
可以考虑把所有的库名都写到一个database的文本里面,一个库一行

然后写个for循环就可以了
for i in `cat database`
do
mysqldump -uroot - p $i > /tmp/$i.sql
done
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式