使用mysqldump进行mysql数据备份

通过mysqldump完成备份,将编写好的bat或shell脚本添加到定时任务中即可完成自动备份功能


windows使用bat脚本:
 

@echo off
echo 设置MySql数据库的连接信息

set host=192.168.8.xxx
set port=3306
set user=xxx
set pass=xxx

echo 设置要备份的MySql数据库名称

set dbname=rfid_test
 
echo 获取当天的日期格式,例如:2022122031300

set hour=%time:~0,2%
if "%time:~0,1%"==" " set hour=0%time:~1,1%
 
set backup_date=%Date:~0,4%%Date:~5,2%%Date:~8,2%%hour%%Time:~3,2%%Time:~6,2%
 
echo 设置备份文件的路径

set backupfile=D:\var\local\sql\%dbname%-%backup_date%.sql
 
echo 使用mysqldump对指定的MySql进行备份
echo 注意路径中有空格的要加上双引号
 
"D:\apps\MySQL\MySQL8.0.34.0\bin\mysqldump" -h%host% -P%port% -u%user% -p%pass% -c --add-drop-table %dbname% > %backupfile%
 
echo 删除过期文件,这里是超过30天就删除
 
forfiles /p D:\var\local\sql\ /s /m *.sql /d -30 /c "cmd /c del @file /f"

参考:Windows下手动、自动备份Mysql数据库(mysqldump)_windows mysqldump-CSDN博客

linux使用shell脚本:
 

#!/bin/bash
set -e

## 只获取今天是几号,当文件名称重复时直接覆盖,相对于只保留一个月内的数据,如果今天是2024-05-29则d1=29
d1=$(date +%d)
localdir=/var/local/temp
table=xxx
ip=xxx
port=3306

bak(){
  echo "mysql bakcup begin at `date`"
  echo "执行mysqludmp,备份文件为$localdir/$table-$d1.sql"
  mysqldump -h$ip -P$port -uroot -pZzxx2023! $table > $localdir/$table-$d1.sql
  echo "mysql backup end at `date`"
}

## 调用方法
bak

##日志输出
echo ${localdir}/mysqlbak.log 2>>${localdir}/mysqlbak.err

set +e

参考:Shell脚本一天一练Day33-MySQL备份脚本_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值