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

yizhihongxing

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日

相关文章

  • 关于SQL查询语句关键字方法

    下面我来详细讲解一下关于SQL查询语句关键字方法的完整攻略。 1. SELECT关键字 SELECT是SQL查询语句中最基础、最常用的关键字,它的作用是用来指定要查询的表、字段。SELECT语句的一般格式如下: SELECT column1, column2, … FROM table_name; 其中,column表示我们要查询的字段名,table_n…

    database 2023年5月21日
    00
  • Android开发中的数据库事务用法分析

    Android开发中的数据库事务用法分析 什么是数据库事务 在Android开发中,我们经常会使用SQLite来存储数据。当我们需要执行一系列数据库操作时,可能需要在它们之间保持一致性,确保一些操作执行成功后,其他的操作才能被执行。在这种情况下,使用数据库事务可以帮助我们实现对这些操作的控制,保证操作的正确性。 一个数据库事务通常包括以下四个属性: 原子性(…

    database 2023年5月21日
    00
  • SQL 计算一年有多少天

    计算一年有多少天可以使用 SQL 查询语言中的日期函数和数学函数。在 SQL 中,日期函数 DATEADD 可以让我们新增一定时间单位到日期上,而数学函数 DATEDIFF 可以用来计算两个日期之间的时间差。通过这两个函数,我们可以比较容易地计算一年有多少天。 以下是两条 SQL 实例: 示例 1:计算一年有多少天 SELECT DATEDIFF(DAY, …

    database 2023年3月27日
    00
  • SQL语句详解 MySQL update的正确用法

    SQL语句详解 MySQL update的正确用法 在MySQL数据库中,UPDATE语句用于修改表中的数据记录,下面详细讲解UPDATE语句的正确用法。 语法 UPDATE 表名 SET 列名1=新值1,列名2=新值2,… WHERE 条件; 表名:需要修改的表名,必选参数。 列名:需要修改的字段名,必选参数。 新值:需要修改的新值,必选参数。 WHE…

    database 2023年5月22日
    00
  • Oracle 计算时间格式平均值的sql 语句

    Oracle 计算时间格式平均值的 SQL 语句的攻略分为以下三个部分: 1.转换时间格式 在计算时间格式平均值前,需要将时间字符串转换为时间类型,然后进行计算。可以使用 Oracle 提供的 to_date 函数将字符串类型的时间转换为时间类型。 例如,假设数据表中的 time_column 字段存储的是时间字符串类型的数据,格式为 ‘YYYY-MM-DD…

    database 2023年5月21日
    00
  • Bash 脚本实现每次登录到 Shell 时可以查看 Linux 系统信息

    实现Bash脚本登录Shell时自动查看Linux系统信息的攻略如下: 1.编写脚本打开终端,执行以下命令: cd ~ echo ‘echo "===系统信息===" && uname -a && echo && echo "===内存信息===" && …

    database 2023年5月22日
    00
  • MySQL中Like概念及用法讲解

    MySQL中Like概念及用法讲解 Like的概念 Like是MySQL中的一种用于模糊匹配的关键字,可以对字符串进行模糊查询。它通常和模式匹配符一起使用,以实现更加精确的查询。 常用的模式匹配符包括: % 代表匹配任意个任意字符(包括0个),例如 %cat% 可以匹配 scattered、category、cat 等字符串。 _ 代表匹配单个任意字符,例如…

    database 2023年5月22日
    00
  • SQL数据库的高级sql注入的一些知识

    SQL数据库的高级SQL注入攻略 什么是SQL注入? SQL注入是一种安全漏洞,是指恶意攻击者利用应用程序错误配置或处理用户输入数据时,在数据库引擎执行 SQL 指令之前将非法的 SQL 指令注入到原有 SQL 语句当中。 为什么要进行SQL注入攻击? 通过注入恶意代码,攻击者可以执行各种攻击,如窃取、篡改或破坏数据库中的数据。 如何防范SQL注入攻击? 在…

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