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关联两张表时的编码问题及解决办法,有需要的朋友们可以参考下。
    2019-09-09
  • sqlite3迁移mysql可能遇到的问题集合

    sqlite3迁移mysql可能遇到的问题集合

    这篇文章主要给大家介绍了关于sqlite3迁移mysql可能遇到的问题集合,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • mysql关联子查询的一种优化方法分析

    mysql关联子查询的一种优化方法分析

    这篇文章主要介绍了mysql关联子查询的一种优化方法,结合实例形式分析了针对MySQL的关联子查询进行优化的技巧,需要的朋友可以参考下
    2016-04-04
  • MySQL异常处理浅析

    MySQL异常处理浅析

    这篇文章主要介绍了MySQL的异常处理,需要的朋友可以参考下
    2014-06-06
  • MySQL数据库多表联合查询代码示例

    MySQL数据库多表联合查询代码示例

    所谓联合就是把多个表的记录往一起合并,一起进行查询,也叫多表查询,这篇文章主要给大家介绍了关于MySQL数据库多表联合查询的相关资料,需要的朋友可以参考下
    2024-01-01
  • Mysql SSH隧道连接使用的基本步骤

    Mysql SSH隧道连接使用的基本步骤

    这篇文章主要给大家介绍了关于Mysql SSH隧道连接使用的基本步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用Mysql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • Mysql 5.6使用配置文件my.ini来设置长时间连接数据库的问题

    Mysql 5.6使用配置文件my.ini来设置长时间连接数据库的问题

    这篇文章主要介绍了Mysql 5.6使用配置文件my.ini来设置长时间连接数据库,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • mysql中的Load data的使用方法

    mysql中的Load data的使用方法

    mysql中的Load data的使用方法,需学习Load data使用的朋友可以参考下
    2013-01-01
  • mysql仿asp的数据库操作类

    mysql仿asp的数据库操作类

    使用说明: 该类完全按照ADO的习惯书写的,用过ASP的人都觉得ASP连接数据库比PHP好用(这是我的感觉), 但PHP得一个一个API地写,挺累,该类做了完全的封装 创建类的实例时可以指定一个数据库表和选择的数据库,如:new MySQLDB("table","database");
    2008-04-04
  • Mysql limit 优化,百万至千万级快速分页 复合索引的引用并应用于轻量级框架

    Mysql limit 优化,百万至千万级快速分页 复合索引的引用并应用于轻量级框架

    MySql 性能到底能有多高?用了php半年多,真正如此深入的去思考这个问题还是从前天开始。有过痛苦有过绝望,到现在充满信心!
    2011-05-05

最新评论