AutoMySQLBackup:为每个数据库创建一个单独的文件

AutoMySQLBackup:为每个数据库创建一个单独的文件

我正在使用以下方法备份数据库自动mysql备份

这工作正常 - 但不幸的是,我没有为每个数据库获得一个单独的文件,而是获得了一个名为

daily_all-databases_2016-04-15_12h01m_Friday.sql.gz

.
├── daily
│   └── daily_all-databases_2016-04-15_12h01m_Friday.sql.gz
├── latest
├── monthly
├── tmp
└── weekly

我想为每个数据库获取一个单独的档案。

我怎样才能做到这一点?

答案1

您应该能够使用SEPDIRconfig 参数。它将为每个数据库创建单独的目录,其中包含自己的文件。

来自Ubuntu 手册页(但在 CentOS 上应该同样有效):

SEPDIR=yes
为每个数据库单独备份目录和文件?(是或否)

另外,您也可以自己编写一个 Bash 脚本来执行此操作,非常简单。如下所示:

mysql -u user -p pass -B -e "SHOW DATABASES"|sed 1d|while read db
do
    mysqldump -u user -p pass $db|gzip>"/home/db_backup/$db.sql.gz"
    if [[ $? != 0 ]];then
        echo "Backup of database $db FAILED!"
    fi
done

显然用它们各自的值替换user和。pass

相关内容