Mysql - 定时备份数据库

382 阅读1分钟

下面会向大家分别介绍Mysql5.6前后的版本备份方式

  • Mysql5.6以下的备份方式

    • 创建运行脚本 (sh格式)
        [#!/bin/sh
        DATE=$(date "+%Y%m%d%H%M%S")
        DIRDATE=$(date "+%Y%m%d")
        if [ ! -d "/home/SqlBack/$DIRDATE" ];then
        mkdir /home/SqlBack/$DIRDATE
        fi
        /mysql路径/mysqldump -uroot -proot 库名 > /mysqldump/test_${DATE}.sql
        ]
        
        -   chmod 600 # 修改脚本运行权限
    
  • Mysql5.6及以上版本

    • 修改my.cnf
        client 下添加
        user = '登录账号'
        password = '登录密码'
    
    
    • 创建运行脚本 (sh格式)
        [#!/bin/sh
        DATE=$(date "+%Y%m%d%H%M%S")
        DIRDATE=$(date "+%Y%m%d")
        if [ ! -d "/home/SqlBack/$DIRDATE" ];then
        mkdir /home/SqlBack/$DIRDATE
        fi
        /mysql安装路径/mysqldump --defaults-extra-file=/etc/my.cnf 库名 > /home/SqlBack/$DIRDATE/yft_log_$DATE.sql
       -   chmod 600 # 修改脚本运行权限
    
  • 安装 crontab (如已安装跳过此步骤)

    • yum安装 crontab
        -   yum install crontabs
    
    • 启动 crontab
        -   systemctl start crond
    
  • 创建自动运行事务

    • vim /etc/crontab
        在最后一行添加【* 30 * * * * sh /文件名.sh】 意思是每隔30分钟备份一次
    
    • 执行自动事务
        crontab /etc/crontab
    

不出意外的话应该是已经搞定了, 最后建议大家如果条件允许的情况下最好把备份文件使用Rsync或FTP传输到另外一台服务器上,以防万一!!!