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日

相关文章

  • Spring Boot 项目集成Redis的方式详解

    下面是Spring Boot 整合Redis的完整攻略: 准备工作 在开始配置之前,我们需要完成几个基本的准备工作。 添加Redis依赖 使用Spring Boot集成Redis需要在pom.xml中添加spring-boot-starter-data-redis依赖,建议使用最新版本。 <dependency> <groupId>o…

    database 2023年5月22日
    00
  • 高性能的内网穿透工具frp使用场景

    针对“高性能的内网穿透工具frp使用场景”的完整攻略,以下是详细讲解: frp简介 frp是一款高性能的内网穿透工具,主要用于将内网应用映射到公网上,让公网用户可以访问内网应用。它支持多种协议转换,配置简单,性能稳定,被广泛应用于各种场景中,例如: 内网web应用的公网访问; 内网消息队列的跨网访问; 内网数据库的公网访问等。 frp的使用场景 内网web服…

    database 2023年5月22日
    00
  • MySQL 连接查询的原理和应用

    一、MySQL 连接查询的原理 MySQL 连接查询(JOIN)是 SQL 查询中最常用的一种查询方式之一,通过该方式可以实现在多张表中对数据的关联查询。连接查询的主要原理是通过连接条件将两张表中的记录进行匹配,最终返回匹配的结果集。连接条件可以通过指定相同的列进行匹配,也可以通过使用运算符、LIKE 等操作符进行匹配。 JOIN 查询一般分为以下几种类型:…

    database 2023年5月22日
    00
  • 如何在Python中使用pyodbc库连接Oracle数据库?

    在Python中,我们可以使用pyodbc库连接Oracle数据库。pyodbc是一个Python模块,它提供了一个统一的API来连接各种数据库。以下是如何在Python中使用pyodbc库连接Oracle数据库的完整使用攻略,包括安装odbc库、连接Oracle数据库、执行SQL语句等步骤。同时,提供两个示例以便更好理解如何在Python使用pyod库连接…

    python 2023年5月12日
    00
  • Thinkphp批量更新数据的方法汇总

    感谢您对ThinkPHP的关注。下面是关于“ThinkPHP批量更新数据的方法汇总”的完整攻略: 一、ThinkPHP批量更新数据的方法汇总 在ThinkPHP中,更新数据时可以使用update方法,但如果需要批量更新多条数据,可以使用其中的一些批量更新数据的方法: saveAll方法 该方法可以批量更新数据,它接收一个数组参数,数组的每一个元素代表一个数据…

    database 2023年5月22日
    00
  • yum错误:Cannot retrieve repository metadata (repomd.xml) for repository解决方法

    当使用yum命令更新软件或下载软件包时,有时会出现如下错误提示:Cannot retrieve repository metadata (repomd.xml) for repository,这个错误通常是由于yum仓库配置有误或者连接yum仓库的网络出现故障导致的。 以下是解决该问题的完整攻略: 1.检查yum仓库配置文件 检查yum仓库配置文件/etc/…

    database 2023年5月22日
    00
  • 在MAMP环境下安装MySQLdb的方法

    下面是在MAMP环境下安装MySQLdb的详细攻略: 步骤一:安装MAMP 下载MAMP软件安装包,可以在官网上下载,选择适合自己系统的版本。 双击安装包,完成MAMP的安装,启动MAMP即可。 步骤二:安装MySQLdb 使用终端进入MAMP的MySQL目录: cd /Applications/MAMP/Library/bin 安装MySQLdb: sud…

    database 2023年5月22日
    00
  • ubuntu 16.04 下如何设置root用户初始密码

    在Ubuntu 16.04中,默认情况下是没有root用户的,所有需要先创建root用户,然后再对root用户进行密码设置。 以下是具体步骤: 创建root用户 第一步:切换到sudoers用户 在默认情况下,Ubuntu16.04是没有root用户的。所以我们需要先切换到sudoers用户。 打开终端,运行以下命令: sudo su 然后会提示输入当前用户…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部