如何实现对Mysql数据库进行分库加分表备份,请用脚本实现

#!/bin/bash
user=root
pass=test
database=`mysql -u$user -p "$pass" -e "show databases;" | sed 1d | grep -v
'schema'`
mkdir /mysql_backup
mysql -u$user -p "$pass" -e "show databases;" &>/dev/null
if [ $?-ne0 ];then
read -p "Mysql do not running,start it?(yes/no):" choice
if [[ "$choice" -eq "yes" ]];then
systemctl start mysqld &>/dev/null
else
echo -e "\033[31m请开启mysql服务,以过滤库、表\033[0m"
exit2
else
echo -e
"\033[33m==================backupstart=====================\033[0m"
for i in $database
do
tables=`mysql -u$user -p "$pass" -e "use $i;show tables;" | sed 1d`
for j in $tables
do
mysqldump -u$user -p "$pass" -B --databases $i --tables $j >
/mysql_backup/${i}-${j}-`date+%F`.sql
[$?-eq0] && echo $i-$j ok >> /mysql_backup/table.log || echo $i-$j failed >>
/mysql_backup/table.log
[$?-eq0] && echo -e "$i-$j\033[32mok!\033[0m" || echo -e
"$i-$j\033[31mfailed!\033[0m"
done
done
echo -e "\033[32m==================backupcomplete===================\033[0m"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值