Linux 每天自动备份mysql数据库的方法

Linux每天自动备份MySQL数据库的方法可以通过使用crontab和压缩包命令联合完成。下面是具体步骤:

1.使用crontab定时备份数据库

使用crontab可以指定在特定时间或隔一定时间执行某个命令或脚本。可以将备份脚本作为一个可执行文件,然后在crontab里面设置定时备份的时间。

首先,我们需要进入Linux系统,使用以下命令创建一个备份脚本

vim /home/backup_mysql.sh

在该文件中输入以下内容,说明每个语句的作用:

#!/bin/bash

# 设置备份信息,包括数据库名、用户名、密码等
MYSQL_DATABASE="example"
MYSQL_USERNAME="root"
MYSQL_PASSWORD="123456"

# 备份保存的路径
BACKUP_PATH="/home/backup"

# 备份日期
BACKUP_DATE=$(date +%Y%m%d)

# 备份文件名
BACKUP_FILE="$MYSQL_DATABASE-$BACKUP_DATE.sql"

# 备份命令
mysqldump --default-character-set=utf8 -u$MYSQL_USERNAME -p$MYSQL_PASSWORD $MYSQL_DATABASE > $BACKUP_PATH/$BACKUP_FILE

上面的脚本将备份example数据库,将备份文件存储到/home/backup目录下,使用当前的日期作为文件名后缀,备份文件的名字为"example-20210727.sql"。

使用以下命令设置脚本为可执行文件:

chmod +x /home/backup_mysql.sh

接下来,使用以下命令打开crontab文件,配置自动备份MySQL数据库:

crontab -e

该命令将打开一个文本编辑器,用于编辑crontab文件。在文件末尾添加以下内容:

# 每天凌晨0点备份MySQL数据库
0 0 * * * /home/backup_mysql.sh

上面的语句表示每个0点(即凌晨12点),执行/home/backup_mysql.sh命令,完成备份操作。

2.使用tar命令压缩备份文件

对于备份文件,如果只存储为一系列的.sql文件,会占用大量的硬盘空间。因此,通常还需要对备份文件进行压缩,这样可以减小备份文件的大小,减少存储空间的占用。Linux下一个非常常见的压缩备份文件命令是tar。

使用以下命令将备份文件打包成.tar.gz格式:

tar czvf /home/backup/$BACKUP_FILE.tar.gz /home/backup/$BACKUP_FILE

该命令将在 /home/backup 目录下创建一个以备份文件名为名字的.tar.gz文件,然后将备份文件压缩到该文件中。

3.例子1 - 多个数据库的备份

如果需要备份多个数据库,可以将备份脚本修改为如下:

#!/bin/bash

# 设置备份信息,包括数据库名、用户名、密码等
MYSQL_DATABASES=("example1" "example2")
MYSQL_USERNAME="root"
MYSQL_PASSWORD="123456"

# 备份保存的路径
BACKUP_PATH="/home/backup"

# 备份日期
BACKUP_DATE=$(date +%Y%m%d)

for db in ${MYSQL_DATABASES[@]}
do
    # 备份文件名
    BACKUP_FILE="$db-$BACKUP_DATE.sql"

    # 备份命令
    mysqldump --default-character-set=utf8 -u$MYSQL_USERNAME -p$MYSQL_PASSWORD $db > $BACKUP_PATH/$BACKUP_FILE

    # 压缩备份文件
    tar czvf $BACKUP_PATH/$BACKUP_FILE.tar.gz $BACKUP_PATH/$BACKUP_FILE 

    # 删除非压缩版备份文件
    rm $BACKUP_PATH/$BACKUP_FILE
done

上面的备份脚本可以备份多个数据库。将需要备份的数据库名放在一个数组中,然后使用循环遍历数组中的每个数据库。备份文件名和备份目录根据需要进行修改。

4.例子2 - 添加文件自动清理

如果备份文件数量太多,会占用大量的硬盘空间,因此可以在备份脚本中加入自动清理过期备份文件的功能。

#!/bin/bash

# 设置备份信息,包括数据库名、用户名、密码等
MYSQL_DATABASE="example"
MYSQL_USERNAME="root"
MYSQL_PASSWORD="123456"

# 备份保存的路径
BACKUP_PATH="/home/backup"

# 备份日期
BACKUP_DATE=$(date +%Y%m%d)

# 备份文件名
BACKUP_FILE="$MYSQL_DATABASE-$BACKUP_DATE.sql"

# 备份命令
mysqldump --default-character-set=utf8 -u$MYSQL_USERNAME -p$MYSQL_PASSWORD $MYSQL_DATABASE > $BACKUP_PATH/$BACKUP_FILE

# 压缩备份文件
tar czvf $BACKUP_PATH/$BACKUP_FILE.tar.gz $BACKUP_PATH/$BACKUP_FILE 

# 删除非压缩版备份文件
rm $BACKUP_PATH/$BACKUP_FILE

# 清理过期备份文件(只保留最近3天备份)
find $BACKUP_PATH -type f -mtime +3 -name "*.tar.gz" -exec rm -rf {} \; 

上面的备份脚本可以完成MySQL数据库备份和文件自动清理两个任务。如果要保留最近5天的备份文件,可以将"-mtime +3"改为"-mtime +5"。

总的来说,上面的步骤为:创建备份脚本、使用crontab定时备份MySQL数据库、使用tar命令压缩备份文件。以上2个例子分别讲解了备份多个数据库和自动清理过期备份文件的实现方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux 每天自动备份mysql数据库的方法 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤

    实现PostgreSQL访问Oracle数据的方法之一是使用oracle_fdw(Oracle Foreign Data Wrapper)。下面是实现步骤: 1. 安装oracle_fdw扩展 首先,需要在PostgreSQL数据库中安装oracle_fdw扩展。可以使用以下命令进行安装: CREATE EXTENSION oracle_fdw; 如果命令执…

    database 2023年5月21日
    00
  • MySQL聚合查询与联合查询操作实例

    MySQL聚合查询与联合查询操作实例 聚合查询 简介 聚合查询是在SELECT语句中使用一组聚合函数(比如SUM,AVG,MAX和COUNT等)在结果集上执行计算,返回一个统计值,而不是一列数据的列表。通常用于计算某一列的总和、平均值、最大/最小值、行数等。聚合查询能够提供有关群体的信息,而不是单独的行,这种信息对于分析数据和做出决策非常有用。 语法 SEL…

    database 2023年5月22日
    00
  • C++异常处理方式实例详解(超级详细!)

    C++异常处理方式实例详解(超级详细!) 异常处理方式简介 在C++中,当程序发生意外情况时,可以通过异常处理方式来进行处理。异常处理方式可以使程序在发生异常时,从当前执行流程中跳转到异常处理流程中去。 异常处理流程由 try/catch 语句块构成。try 语句块用于包含可能抛出异常的代码,而 catch 语句块则用于捕捉并处理异常,从而避免程序崩溃或未预…

    database 2023年5月21日
    00
  • spring boot 整合redis之后报错

    spring boot2 整合redis,使用下述依赖 implementation ‘org.springframework.boot:spring-boot-starter-data-redis’ 但是在项目启动的时候,就会报错, Caused by: java.lang.ClassNotFoundException: org.apache.common…

    Redis 2023年4月12日
    00
  • 数据库:MySQL(多表的表记录的查询)(三)

    一、外键约束 1、创建外键 — 每一个班主任会对应多个学生 , 而每个学生只能对应一个班主任 —-主表 CREATE TABLE ClassCharger( id TINYINT PRIMARY KEY auto_increment, name VARCHAR (20), age INT , is_marriged boolean — show c…

    MySQL 2023年4月13日
    00
  • SQLite教程(三):数据表和视图简介

    下面是“SQLite教程(三):数据表和视图简介”的完整攻略: SQLite教程(三):数据表和视图简介 数据表简介 在SQLite中,数据表是一组相关的数据集合,可以用来存储和组织数据。每个数据表由列名和数据类型组成,每一列可以包含一定的数据类型,比如整数、浮点数、字符串、日期等。一个数据表包含多行数据,每行数据包含多列数据。 创建数据表的语法格式如下: …

    database 2023年5月21日
    00
  • Apache Shiro 使用手册(一) Shiro架构介绍

    Apache Shiro 使用手册(一) Shiro架构介绍 Shiro简介 Shiro是一个易于使用的Java安全框架,提供了认证、授权、加密和会话管理等功能。 Shiro经常用于Web应用程序和RESTful服务,不过也可以用于非Web环境。Shiro与其他Java安全框架(如Spring Security)相比,其API更加简单易用,而且使用过程中无需…

    database 2023年5月22日
    00
  • MySQL root修改普通用户密码

    MySQL是一种流行的关系型数据库管理系统,它被广泛用于各种应用程序中。作为MySQL的管理员,我们需要时常修改普通用户的密码以确保数据库的安全性。 在MySQL中,root用户是拥有最高权限的用户。如果我们需要修改普通用户的密码,那么我们需要使用root用户登录MySQL并进行操作。 下面是MySQL root修改普通用户密码的方法详解: 步骤1:使用ro…

    MySQL 2023年3月10日
    00
合作推广
合作推广
分享本页
返回顶部