mysql备份脚本

基于mysqldump,最好备份的账号用专门备份的账号(只有查询权限的)

思路

主要利用mysqldump -u -p 库名 > 库名.sql 这条命令开始延伸
1.先定义好时间变量,备份的sql名都要最好带上完整时间
2.mysql免交互-e执行查询数据库命令,打印所有数据库名,作为遍历池(-s 是去掉结果中的符号图,我们不需要备份系统数据库,所以搭配grep -v 来排除系统数据库)
3.备份命令后判断执行状态。

步骤:

查询数据库求出数据库名--》遍历,对每一个数据库分别备份---》确定执行状态

分库备份

#!/bin/bash
#mysql db backup script
#2020-10-29

DATE=$(date +%Y%m%d-%H:%M)
USER=root
PASSWD=123456
DB_LIST=$(mysql -u$USER -p$PASSWD -s -e "show databases;"|grep -Ev "information_schema|mysql|performance_schema|new_test|sys|sys_info")
BACKUP_DIR=/data/mysql_back
for db in $DB_LIST
do
    if [ ! -d $BACKUP_DIR ];then
        mkdir -p $BACKUP_DIR
        echo "备份目录$BACKUP_DIR创建完成"
    fi
    dbname=$BACKUP_DIR/${db}_${DATE}.sql
    mysqldump -u$USER -p$PASSWD $db>$dbname 2>/dev/null
    
    if [ $? != 0 ];then
        echo "$dbname备份失败"
        
    fi
    
done

执行结果:


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。