将 mysql 个数据库备份到独立文件中

Backup mysql databases into self contained files

我有一个 linux 系统 Mysql 包含超过 400 个数据库,我需要将每个数据库导出为单个 *.sql file.Is 可以做到这一点mysql_dumpMysqlworkbench.

我试过 mysql_dump--all-databases option.but 这使得一个包含所有 database.it 的文件很大。

实现此目的的一种方法是编写 bash 脚本:(Source)

#! /bin/bash

TIMESTAMP=$(date +"%F")
BACKUP_DIR="/backup/$TIMESTAMP"
MYSQL_USER="backup"
MYSQL=/usr/bin/mysql
MYSQL_PASSWORD="password"
MYSQLDUMP=/usr/bin/mysqldump

mkdir -p "$BACKUP_DIR/mysql"

databases=`$MYSQL --user=$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`

for db in $databases; do
  $MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --databases $db | gzip > "$BACKUP_DIR/mysql/$db.gz"
done

有关详细信息,请查看 this 类似问题。