使用脚本定时备份MySql数据库文件

如果mysql不在环境变量中,请先将mysql放入环境变量

bash 复制代码
#将mysql添加进环境变量中
export PATH=$PATH:/usr/local/mysql/bin/

#重新加载配置文件
source /etc/profile

新建一个脚本

bash 复制代码
touch backup_all_databases.sh

脚本内容:

bash 复制代码
#!/bin/bash  
  
# MySQL登录信息  
USER="root"  
PASSWORD="123456"  
  
# 备份目录  
BACKUP_DIR="/home/mysqlbak/$(date +%Y%m%d)"  
  
# 创建备份目录  
mkdir -p "$BACKUP_DIR"  
  
# 获取所有数据库名  
DATABASES=$(mysql -u"$USER" -p"$PASSWORD" -Nse 'show databases')  
  
# 遍历所有数据库进行备份  
for DB in $DATABASES; do  
    # 跳过系统数据库  
    if [[ "$DB" == "information_schema" || "$DB" == "mysql" || "$DB" == "performance_schema" || "$DB" == "sys" ]]; then  
        continue  
    fi  
      
    # 生成备份文件名  
    BACKUP_FILE="$BACKUP_DIR/${DB}_$(date +%Y%m%d%H%M%S).sql"  
      
    # 执行mysqldump命令进行备份  
    mysqldump -u"$USER" -p"$PASSWORD" "$DB" > "$BACKUP_FILE"  
      
    # 检查备份是否成功  
    if [ $? -eq 0 ]; then  
        echo "Database $DB backed up to $BACKUP_FILE"  
    else  
        echo "Error backing up database $DB"  
    fi  
done  
  
echo "All databases backed up to $BACKUP_DIR"

需要给这个脚本文件执行权限:

bash 复制代码
chmod +x backup_all_databases.sh
复制代码
需要给这个脚本文件执行权限:
bash 复制代码
./backup_all_databases.sh

自动执行

bash 复制代码
vi /etc/crontab

#每天凌晨1点执行
0 1 * * * bash /home/backup_all_databases.sh

查看crontab服务状态:

bash 复制代码
service crond status

手动启动crontab服务:

bash 复制代码
service crond start

查看crontab服务是否已设置为开机启动,执行命令:

bash 复制代码
ntsysv

加入开机自动启动:

bash 复制代码
chkconfig --level 35 crond on
相关推荐
feifeigo1231 小时前
升级到MySQL 8.4,MySQL启动报错:io_setup() failed with EAGAIN
数据库·mysql·adb
火龙谷2 小时前
【nosql】有哪些非关系型数据库?
数据库·nosql
焱焱枫3 小时前
Oracle获取执行计划之10046 技术详解
数据库·oracle
qq_392397125 小时前
Redis常用操作
数据库·redis·wpf
一只fish6 小时前
MySQL 8.0 OCP 1Z0-908 题目解析(17)
数据库·mysql
花好月圆春祺夏安7 小时前
基于odoo17的设计模式详解---装饰模式
数据库·python·设计模式
A__tao7 小时前
SQL 转 Java 实体类工具
java·数据库·sql
m0_653031367 小时前
腾讯云认证考试报名 - TDSQL数据库交付运维专家(TCCE PostgreSQL版)
运维·数据库·腾讯云
小马哥编程8 小时前
【iSAQB软件架构】架构决策记录-ADR
数据库·架构·系统架构·设计规范
萧鼎8 小时前
深度探索 Py2neo:用 Python 玩转图数据库 Neo4j
数据库·python·neo4j