mysql在liunx下面的自动备份

发布时间 2023-07-24 17:42:15作者: IT之家

由于系统基本开发完成,为了保证数据安全,需要将数据库自动备份,以下是实现自动备份的步骤:

一、在本地自动备份数据库

  1. 使用mysql自带的服务mysqldump实现自动备份,首先使用vim命令编辑以下命令并且保存    

#!/bin/bash

DB_USER='***' 
DB_PASSWORD='*******'
DB_NAME='******'

BACKUP_DIR='/backup'
BACKUP_FILE="$BACKUP_DIR/${DB_NAME}-$(date +%Y%m%d-%H%M%S).sql"

mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_FILE

find $BACKUP_DIR -type f -mtime +30 -name '*.sql' -exec rm -f {} \;

  其中,DB_USER是mysql的用户名,DB_PASSWORD 是数据库密码,DB_NAME数据库名称,BACKUP_DIR是备份的目录, BACKUP_FILE是备份的文件名,此处使用了数据名称+当前的日期和时间来命名,最后一个命令是删除30天以前的备份文件

  注意:如果使用VIM编辑命令,在命令模式下输入:wq回车即可退出保存,vim默认为普通命令模式,按ESC键可以切换模式,也可以在本地编辑好文件然后使用xftp等工具上传到指定目录

  2. 使用下面的命令将备份的脚本文件设置为可执行  

chmod +x /backup/backup_mysql.sh

  3. 使用crontab设置脚本自动运行时间,类似windows中的自动任务,如果没有安装crontab需要先安装才可以使用,我是使用

  • yum install crontabs命令安装的,不同的操作系统有所区别可以查询一下,安装完成后使用命令 crontab -e 编辑 自动任务执行命令,我的命令如下:
0,6,13,22 0 * * * /backup/backup_mysql.sh

  表示每天0、6、13、22点0分执行备份命令,crontab命令的第一列表示时、第二列表示分、第三列为日 ,第四列为月,第五列为周,规则与CronExpression有点类似,具体的使用方法可以在网上查询

   执行脚本保存后,等待时间到了即会自动执行备份任务。

二、在其它服务器上自动备份数据库,方法与在本地备份其实是差不多的,只是增加一个将备份文件复制到其它服务器的操作,我这里使用了openssh进行文件复制,openssh,主要用于远程登录服务器,类似于windows的Telnet服务,但是openssh,相对Telnet来说,OPENSSH更为安全