MYSQL定时备份(一)

这篇博客详细介绍了如何在Linux环境下配置SSH免密登录,并利用Mysqldump进行数据库备份,包括生成SSH密钥对、设置my.cnf配置文件、编写备份脚本、设置定时任务以及检查备份结果。整个过程旨在实现无人值守的数据库定时备份,确保数据安全。
摘要由CSDN通过智能技术生成

当Linxu服务器进行定时备份时,需要配置scp服务。
如下:

本地服务器(A)主服务器
远程服务器(B)从服务器

1,本地服务器A运行ssh-keygen -t rsa,一直回车即可。出现这个页面表示运行成功,会在/root/.ssh下生成id.rsa和id_rsa.pub两个文件。

[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/fdipzone/.ssh/id_rsa): 这里输入要生成的文件名
Enter passphrase (empty for no passphrase):                       这里输入密码 
Enter same passphrase again:                                      这里重复输入密码
Your identification has been saved in /home/fdipzone/.ssh/id_rsa.
Your public key has been saved in /home/fdipzone/.ssh/id_rsa.pub.
The key fingerprint is:
f2:76:c3:6b:26:10:14:fc:43:e0:0c:4d:51:c9:a2:b0 fdipzone@ubuntu
The key's randomart image is:
+--[ RSA 2048]----+
|    .+=*..       |
|  .  += +        |
|   o oo+         |
|  E . . o        |
|      ..S.       |
|      .o .       |
|       .o +      |
|       ...oo     |
|         +.      |
+-----------------+

2,把主服务A的id_rsa.pub文件拷贝到远程服务器B的/root/.ssh下,如果远程服务器B的/root/.ssh的文件夹不存在,执行mkdir 文件名创建。通过ssh工具下载上传的方式,也可以用scp拷贝,scp第一次是需要输入密码,复制完之后,信任关系就已经建立如下:

#/root/.ssh为文件夹路径,127.0.0.1是备份服务器IP。scp的同时会修改文件夹为authorized_keys
[root@localhost .ssh]# scp /root/.ssh/id_rsa.pub root@127.0.0.1:/root/.ssh/authorized_keys
root@127.0.0.1's password: 
id_rsa.pub                                      100%  408    41.7KB/s   00:00    
[root@localhost .ssh]#

3,在Linux下Mysqldump备份数据,会提示输入密码。在my.cnf配置文件中[client]模块下添加数据库账号和密码,如下图

[client]
port = 3306
default-character-set=utf8
user = root
password = 123456

4,在指定的路径执行编写好的shell脚本,执行之前需要在远程服务器B创建/home/mysql_backup文件夹。因为scp相互信任步骤完成,my.cnf配置中已设置数据库账号和密码,所以不需要在输入密码,如下图:

[root@localhost home]# sh mysql_backup.sh 
20201129-1445-test1.sql-tar.gz                                        100%  341KB  14.0MB/s   00:00    
20201129-1445-test2.sql-tar.gz                                         100% 5483   387.3KB/s   00:00    
20201129-1445-test3.sql-tar.gz                                         100%   31MB  31.3MB/s   00:01    
20201129-1445-test4sql-tar.gz                                         100%   23KB 827.6KB/s   00:00    
20201129-1445-test5.sql-tar.gz                                      100%   46MB  45.8MB/s   00:01    
[root@localhost home]# 

5,脚本如下

#创建mysql备份目录
file_dir="/home/mysql_backup"

if [ ! -d "$file_dir" ]; then
        echo "创建文件夹"
        mkdir $file_dir
else
        echo "文件夹已存在,正在备份mysql,请等待。"
fi

    rm -rf /home/mysql_backup/*
    HOST=127.0.0.1
    DATABASE1=test
    BACKUP_DIR=/home/mysql_backup/  #备份数据库文件的路径 
    LOGFILE=/home/mysql_backup/data_backup.log    #备份数据库脚本的日志文件 
    DATE=`date +%Y%m%d-%H%M -d -3minute`     #获取当前系统时间-3分钟 
    DUMPFILE1=$DATE-test.sql                #需要备份的数据库名称 
    ARCHIVE1=$DUMPFILE1-tar.gz                #备份的数据库压缩后的名称 

    if [ ! -d $BACKUP_DIR ];                 #判断备份路径是否存在,若不存在则创建该路径 
    then  
    mkdir -p "$BACKUP_DIR" 
    fi  

    echo -e "\n" >> $LOGFILE   

    echo "------------------------------------" >> $LOGFILE  
    echo "BACKUP DATE:$DATE">> $LOGFILE  
    echo "------------------------------------" >> $LOGFILE  

    cd $BACKUP_DIR                           
    #跳到备份路径下
mysqldump -h$HOST -R --databases $DATABASE1 --hex-blob > $DUMPFILE1    
    #使用mysqldump备份数据库 
    if [[ $? == 0 ]]; then 
    tar czvf $ARCHIVE1 $DUMPFILE1 >> $LOGFILE 2>&1
    #判断是否备份成功,若备份成功,则压缩备份数据库,否则将错误日志写入日志文件中去。 
    echo "$ARCHIVE1 BACKUP SUCCESSFUL!" >> $LOGFILE  
    rm -f $DUMPFILE1 
    else  
    echo$ARCHIVE1 Backup Fail!>> $LOGFILE  
    fi 
	
scp /home/mysql_backup/* root@127.0.0.1:/home/mysql_backup/

6,到主服务器A,远程服务器B指定的MYSQL备份目录看下是否成功,备份成功!
在这里插入图片描述

7,接下来设置定时备份任务,在主服务器A执行crontab -e,设置脚本执行的时间,下面语句中的路径及时间请根据实际情况填写。如下

30 23 * * * /bin/bash /home/mysql_backup.sh

8,如未生效,执行 service crond reload 重载crond服务!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值