我有一个使用 --all-databases 选项的计划 mysqldump 任务。这会将所有数据库包含在一个文件中。
我如何告诉 mysql 导入转储文件中包含的其中一个数据库?
-M
谢谢大家的回答。非常感谢……我最终没有使用 --all-databases 选项。以下是替代脚本:
#! /bin/bash
date=`date +%A`
for i in /var/lib/mysql/*/; do
dbname=`basename $i`
mysqldump -u <whatever username> --password=<whatever pw>--single-transaction $dbname > <path>/$date/$dbname-backup.sql
done
答案1
编辑转储文件以提取与感兴趣的数据库相关的语句,或者将整个转储加载到临时数据库服务器中并仅转储感兴趣的数据库。
这就是为什么知情人士将他们的数据库转储到单独的文件中。
答案2
这是另一个修改。
for i in $(mysql -N -e 'show databases' -uroot -p'password' ); do mysqldump -uroot -p'password' $i | gzip -9c > /root/backups/$i\_$(date +\%Y-\%m-\%d_\%Hh\%M).sql.gz; done