将 mysql 个数据库备份到独立文件中
Backup mysql databases into self contained files
我有一个 linux 系统 Mysql 包含超过 400 个数据库,我需要将每个数据库导出为单个 *.sql
file.Is 可以做到这一点mysql_dump
或 Mysqlworkbench
.
我试过 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 类似问题。
我有一个 linux 系统 Mysql 包含超过 400 个数据库,我需要将每个数据库导出为单个 *.sql
file.Is 可以做到这一点mysql_dump
或 Mysqlworkbench
.
我试过 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 类似问题。