#!/bin/bash
mysql -uroot -p'ZRSan@123456' -e 'show databases' -N | egrep -v 'information_schema|mysql|performance_schema|sys' > dbname
# 判断是否有/backup/db目录,没有则创建
[ -d /backup/db ] || mkdir -p /backup/db
#一行一行读取dbname中的库名,然后开始备份数据库,进而分别备份数据库中的表
while read line
do
#备份数据库
mysqldump -uroot -p'#BenJM123' -B $line | gzip > /backup/db/${line}_$(date +%F).sql.gz
#分别将数据库中的表名保存到tbname文件中
mysql -uroot -p'#BenJM123' -e "show tables from $line" -N > tbname
#判断是否有/backup/db/$line目录,没有则创建
[ -d /backup/db/$line ] || mkdir /backup/db/$line
#读取tbname中的表名,备份数据表
while read line2
do
#备份数据表
mysqldump -uroot -p'#BenJM123' $line $line2 | gzip > /backup/db/$line/${line2}_$(date +%F).sql.gz
done < tbname
done < dbname
编写脚本,使用mysqldump实现分库分表备份。
最新推荐文章于 2024-05-28 11:33:27 发布
文章描述了一个使用bash脚本进行MySQL数据库自动备份的过程,包括获取数据库列表,备份数据库和表,并按日期组织备份文件。
616

被折叠的 条评论
为什么被折叠?



