如何备份多个数据库_mysql批量备份方法

来源:这里教程网 时间:2026-02-28 20:52:59 作者:

mysqldump
配合 Shell 脚本,是最常用、最可靠的 MySQL 批量备份方式。核心思路是:获取数据库列表 → 循环执行导出 → 按时间/库名组织文件。

一、列出所有需备份的数据库

先确认要备份哪些库。可手动指定,也可动态获取(排除系统库):

手动指定:
DBS="db1 db2 db3"
自动获取(推荐):
DBS=$(mysql -N -s -e "SHOW DATABASES" | grep -Ev "^(information_schema|performance_schema|mysql|sys)$")

二、编写批量备份脚本

保存为

backup_mysql.sh
,赋予执行权限(
chmod +x backup_mysql.sh
):

#!/bin/bash
BACKUP_DIR="/data/backup/mysql/$(date +%Y%m%d)"
USER="root"
PASS="your_password"
HOST="localhost"
<p>mkdir -p "$BACKUP_DIR"</p><div class="aritcle_card flexRow">
                                                        <div class="artcardd flexRow">
                                                                <a class="aritcle_card_img" href="/xiazai/code/10280" title="NetGou网店购物系统"><img
                                                                                src="https://www.herecours.com/d/file/efpub/2026/28-28/20260228123807722303.jpg" alt="NetGou网店购物系统"  onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
                                                                <div class="aritcle_card_info flexColumn">
                                                                        <a href="/xiazai/code/10280" title="NetGou网店购物系统">NetGou网店购物系统</a>
                                                                        <p>NetGou是一款国内知名的购物系统网店系统,它功能强大完善、运行稳定快速、界面友好人性化、可扩展性强。系统支持无限级商品分类管理、商品品牌管理、商品供货商管理、商品可同时加入多个商品分类商品批发价格,购买不同的商品数量可以设置不同的价格。不同的商品选项可以设置不同的价格订单中可以加入商品、删除商品、更改商品数量和价格、更改配送方式和配送费用新闻管理、销售统计、数据备份恢复,不同的会员等级可以设置</p>
                                                                </div>
                                                                <a href="/xiazai/code/10280" title="NetGou网店购物系统" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
                                                        </div>
                                                </div><p>for DB in $DBS; do
echo "正在备份 $DB..."
mysqldump -h"$HOST" -u"$USER" -p"$PASS" --single-transaction --routines --triggers "$DB" > "$BACKUP<em>DIR/${DB}</em>$(date +%Y%m%d_%H%M%S).sql"
done</p><p>echo "备份完成,目录:$BACKUP_DIR"

说明:
--single-transaction 保证 InnoDB 数据一致性;
--routines--triggers 分别导出存储过程和触发器;
文件名含时间戳,避免覆盖。

三、添加自动压缩与清理(可选但实用)

备份后压缩节省空间,定期清理旧备份防磁盘占满:

压缩:在循环结束后加一行
gzip "$BACKUP_DIR"/*.sql
清理7天前备份:
find /data/backup/mysql/ -type d -mtime +7 -exec rm -rf {} \;

四、加入定时任务(每天凌晨2点执行)

运行

crontab -e
,添加:

0 2 * * * /path/to/backup_mysql.sh >> /var/log/mysql_backup.log 2>&1

日志记录便于排查问题,注意路径写绝对路径。

不复杂但容易忽略:确保 MySQL 用户有对应库的 SELECT 权限;密码若含特殊字符,建议改用配置文件方式(

~/.my.cnf
)避免命令行泄露。

相关推荐