mysql自动备份多个数据库的实现

 更新时间:2023年07月19日 11:43:58   作者:moxiaoran5753  
本文主要介绍了mysql自动备份多个数据库的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1.编写mysql自动备份shell脚本,比如在/opt/data/backup/sh路径下创建文件 mysql_backup.sh

#!/bin/bash
#备份目录
BACKUP=/opt/data/backup/mysql
DATETIME=$(date +%Y-%m-%d_%H-%M-%S)
echo $DATETIME
#数据库的地址
HOST=127.0.0.1
#数据库用户名
DB_USER=root
#数据库密码
DB_PW=root
#备份的数据库名
DATABASE1=db-test
DATABASE2=test2
DATABASE3=test3
#创建备份目录
if [ ! -d "${BACKUP}/${DATETIME}" ]
then
mkdir -p "${BACKUP}/${DATETIME}"
fi
cd ${BACKUP}/${DATETIME}
mkdir ${DATABASE}
mkdir test2
mkdir test3
#备份数据库
/usr/local/mysql/bin/mysqldump -u${DB_USER} -p${DB_PW} -h ${HOST} ${DATABASE1} > ${BACKUP}/${DATETIME}/${DATABASE1}/$DATETIME.sql
/usr/local/mysql/bin/mysqldump -u${DB_USER} -p${DB_PW} -h ${HOST} ${DATABASE2}  > ${BACKUP}/${DATETIME}/${DATABASE2} /$DATETIME.sql
/usr/local/mysql/bin/mysqldump -u${DB_USER} -p${DB_PW} -h ${HOST} ${DATABASE3}  > ${BACKUP}/${DATETIME}/${DATABASE3} /$DATETIME.sql
#将文件压缩成 tar.gz
cd ${BACKUP}
tar -zcvf $DATETIME.tar.gz ${DATETIME}
#删除7天前的的备份文件
find ${BACKUP} -atime +7 -name "*.tar.gz" -exec rm -rf {} \;
echo "备份数据库db-test成功"
echo "备份数据库test2 成功"
echo "备份数据库test3 成功"

2.为文件添加执行权限:

chmod 775 /opt/data/backup/sh/mysql_backup.sh

3.检查shell脚本编写是否有误

这里可分成2步,第1步,执行mysql备份命令:

/usr/local/mysql/bin/mysqldump -u${DB_USER} -p${DB_PW} -h ${HOST} ${DATABASE1} > ${BACKUP}/${DATETIME}/${DATABASE1}/$DATETIME.sql

注意将上面的变量替换为真实值,存放目录需真实存在。如果能备份成功,且将数据输出到备份的SQL文件,进入第2步验证,直接执行shell脚本

/opt/data/backup/sh/mysql_backup.sh

如果正常执行,且输出的SQL脚本真实有数据,则证明shell备份脚本通过,否则根据提示的错误信息进行修正。

4.添加到linux定时任务中,输入下面的命令添加一个定时任务:

crontab -e

输入:

50 23 *  *  0  /opt/data/backup/sh/mysql_backup.sh

上面的命令表示,每周天晚上23点50分执行上面的mysql备份脚本,更多时间表述请自行查询,需注意的是定时任务如果用root账号添加的,普通账号将无法查看。

到此这篇关于mysql自动备份多个数据库的实现的文章就介绍到这了,更多相关mysql自动备份数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL中列子查询与行子查询操作的学习教程

    MySQL中列子查询与行子查询操作的学习教程

    这篇文章主要介绍了MySQL中列子查询与行子查询操作的学习教程,子查询是MySQL入门学习中的基础知识,需要的朋友可以参考下
    2015-12-12
  • MySQL中主键为0与主键自排约束的关系详解(细节)

    MySQL中主键为0与主键自排约束的关系详解(细节)

    这篇文章主要给大家介绍了关于MySQL中主键为0与主键自排约束的关系的相关资料,主要介绍的是其中的一些非常细的细节,对大家学习或者使用mysql具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-05-05
  • mysql错误处理之ERROR 1665 (HY000)

    mysql错误处理之ERROR 1665 (HY000)

    最近一直在mysql的各个版本直接徘徊,这中间遇到了各种各样的错误,将已经处理完毕的几个错误整理了一下,分享给大家,这次我们来看看错误提示 ERROR 1665 (HY000)
    2014-07-07
  • Mysql的max_allowed_packet设定

    Mysql的max_allowed_packet设定

    今天小编就为大家分享一篇关于Mysql的max_allowed_packet设定,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • MySql存储过程循环的使用分析详解

    MySql存储过程循环的使用分析详解

    这篇文章主要介绍了MySql存储过程循环的使用分析详解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-06-06
  • mysql清除log-bin日志的方法

    mysql清除log-bin日志的方法

    这篇文章主要介绍了mysql清除log-bin日志的方法,同时介绍了log-bin日志的作用,需要的朋友可以参考下
    2014-06-06
  • MSSQL产生死锁的根本原因及解决方法

    MSSQL产生死锁的根本原因及解决方法

    死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等的进程称为死锁进程
    2016-04-04
  • 如何使用mysql查询24小时数据

    如何使用mysql查询24小时数据

    在进行实时数据处理时,我们常常需要查询最近24小时的数据来进行分析和处理,下面我们将介绍如何使用MySQL查询最近24小时的数据,需要的朋友可以参考下
    2023-07-07
  • MySQL命令行中给表添加一个字段(字段名、是否为空、默认值)

    MySQL命令行中给表添加一个字段(字段名、是否为空、默认值)

    本文介绍MySQL数据库使用SQL语句来在现有的表中,添加一个新的字段,包括设置字段的是否为空、默认值等
    2016-04-04
  • MySQL 搭建双主复制服务并通过 HAProxy 负载均衡的过程详解

    MySQL 搭建双主复制服务并通过 HAProxy 负载均衡的过程详解

    在数据库管理中,数据的备份和同步是至关重要的环节,而双主复制(Dual Master Replication)作为一种高可用性和数据同步的解决方案,本文将介绍MySQL双主复制的配置过程并通过 HAProxy 负载均衡,感兴趣的朋友一起看看吧
    2024-03-03

最新评论