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自动备份数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • CentOS 6.5安装mysql5.7教程

    CentOS 6.5安装mysql5.7教程

    这篇文章主要为大家详细介绍了CentOS 6.5安装mysql5.7教程,包括mysal旧版本的卸载、新版本的升级,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • 阿里云 Centos7.3安装mysql5.7.18 rpm安装教程

    阿里云 Centos7.3安装mysql5.7.18 rpm安装教程

    这篇文章主要介绍了阿里云 Centos7.3安装mysql5.7.18 rpm安装教程,需要的朋友可以参考下
    2017-06-06
  • Mysql分析设计表主键为何不用uuid

    Mysql分析设计表主键为何不用uuid

    在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究竟有什么坏处?本篇博客我们就来分析这个问题,探讨一下内部的原因
    2022-03-03
  • MySQL开启记录执行过的SQL语句方法

    MySQL开启记录执行过的SQL语句方法

    这篇文章主要介绍了MySQL开启记录执行过的SQL语句方法,配置的方法很简单,本文直接给出配置示例,需要的朋友可以参考下
    2015-07-07
  • mysql查看用户授权信息的具体方法

    mysql查看用户授权信息的具体方法

    在本篇文章里小编给大家整理的是一篇关于mysql查看用户授权信息的具体方法,有需要的朋友们可以参考下。
    2020-08-08
  • MySQL添加唯一索引的常见方法

    MySQL添加唯一索引的常见方法

    唯一索引是MySQL中保证数据完整性的重要工具,它强制要求索引列的值必须唯一,,与主键索引不同,唯一索引允许存在多个,且不隐含非空约束,本文给大家介绍了关于MySQL添加唯一索引的常见方法,需要的朋友可以参考下
    2026-02-02
  • MySQL中时间函数操作大全

    MySQL中时间函数操作大全

    在使用SQL语言进行数据查询和数据分析中,常常需要借助日期时间函数来计算相关的指标或生成日期辅助列,下面这篇文章主要给大家介绍了关于MySQL中时间函数操作的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • mysql过滤复制思路详解

    mysql过滤复制思路详解

    这篇文章主要介绍了mysql过滤复制的实现思路,主要讲解了两种思路,一种是在主库的binlog上实现另一种是从库的sql线程上实现,具体实现过程跟随小编一起看看吧
    2021-08-08
  • Mysql binlog的查看方法

    Mysql binlog的查看方法

    MySQL的二进制日志可以说是MySQL最重要的日志了,本文主要介绍了Mysql binlog的查看方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-04-04
  • MySQL8中隐藏索引与降序索引的新特性

    MySQL8中隐藏索引与降序索引的新特性

    本文主要介绍了MySQL8中隐藏索引与降序索引的新特性,隐藏索引和降序索引为数据库的性能优化和灵活性提供了有力支持,感兴趣的可以了解一下
    2024-08-08

最新评论