zoukankan      html  css  js  c++  java
  • linux下应用crontab对mysql数据库进行定时备份

    mysql数据库提供了备份命令mysqldump,可以结合crontab命令进行定时备份。

    我写了一个mysql_backup.sh的脚本,此脚本按照日期在当前目录下创建一个文件夹,同时在此目录下备份一个文件。内容如下:

    #!/bin/bash
    #设置mysql备份目录
    folder=/home/lx/data_backup
    cd $folder
    day=`date +%Y%m%d`
    rm -rf $day
    mkdir $day
    cd $day
    #数据库服务器,一般为localhost
    host=localhost
    #用户名
    user=root
    #密码
    password=password
    #要备份的数据库
    db=guizi_lx
    
    #数据要保留的天数
    days=3
    mysqldump -h$host -u$user -p$password $db>backup.sql
    #如何只是备份单表或者多张表,命令如下:
    mysqldump -h$host -u$user -p$password $db 表名1 表名2 表名3 >backup.sql
    
    zip backup.sql.zip backup.sql
    rm backup.sql
    cd ..
    day=`date -d "$days days ago" +%Y%m%d`
    rm -rf $day

    另外,需要配置crontab。假设上述文件位置为/home/chzhao/bin/mysqlbackup.sh,则按以下命令配置crontab.

    crontab -e

    出现crontab的配置窗口,默认的编辑器是vim。
    输入:

    0 16 * * * /home/chzhao/bin/mysqlbackup.sh

    表示每天的16点执行此脚本。

    配置完毕之后,可以通过命令crontab -l查看crontab的配置情况。

    二、数据库的还原

    mysql命令还原

    1、进入数据库备份好的文件夹

    [root@CentOS 20200830]# ls

    backup.sql.zip

    2、解压出sql文件

    [root@CentOS 20200830]# unzip backup.sql.zip

    Archive: backup.sql.zip

    inflating: backup.sql

    3、查看解压出的文件:backup.sql是解压出的文件

    [root@CentOS 20200830]# ls

    backup.sql backup.sql.zip

    4、还原数据库操作,回车以后同样会提示输入登录密码

    [root@CentOS 20200830]# mysql -u root -p guizi_lx < backup.sql

    Enter password:

    [root@CentOS 20200830]#


    第二种方式:使用source命令恢复数据库
    第一步:进入mysql控制台,切换到我们想恢复数据的数据库,指令如: use 数据库名
    第二步:使用source命令恢复,即我们备份时的.sql文件,
    指令如:source /home/lzh/bak/test.sql

  • 相关阅读:
    Effective C++ 学习笔记(12)
    Effective C++ 学习笔记(6)
    Effective C++ 学习笔记(13)
    Effective C++ 学习笔记(11)
    Effective C++ 学习笔记(10)
    (转)C++函数后加const的意义
    Effective C++ 学习笔记(14)
    Effective C++ 学习笔记(7)
    Effective C++ 学习笔记(9)
    Effective C++ 学习笔记(8)
  • 原文地址:https://www.cnblogs.com/MR-ws/p/14813089.html
Copyright © 2011-2022 走看看