Windows 下 MySQL 简单定时自动备份、删除过期备份并自动提交git

 

1.创建git本地仓库

提交git后,删除了备份文件,其实还是存在历史数据的,会越积越多。

使用https方式push,需要输入账号和密码,所以使用ssh的方式,push。

1.1 建立git远程仓库 

mysql_backup

1.2  生成ssh 密钥

生成RSA秘钥对:

ssh-Keygen -t rsa -C "your email(邮箱)"

输入命令后,敲下回车键,会提让你输入 生成的秘钥对保存的路径,如果使用默认的保存路径,直接敲回车即可

然后,需要让你输入口令保护,直接敲回车,不要输入口令,不然push的时候还是需要口令。

然后是口令保护确认,如果上一步为空,这一步也直接敲回车即可。
然后rsa秘钥对就生成了。

然后我们打开.ssh文件夹。看到俩个文件 id_rsa和 id_rsa.pub
rsa.pub里面的内容就是我们需要在github上面配置公钥。我们复制里面的内容。

输入密码后配置成功

1.3 克隆本地仓库

复制ssh协议的地址。
在命令行直接使用命令克隆即可:

# 克隆远程仓库
git clone git@github.com:Jieszs/mysql_backup.git
# 关联远程仓库
git remote add origin git@github.com:Jieszs/mysql_backup.git

2.创建批处理文件mysql_backup.bat

rem ******MySQL backup start********
@echo off
::删除超过30天的备份数据
forfiles /p "D:\mysql_back\mysql_backup" /m *_backup_*.sql -d -30 /c "cmd /c del /f @path"
 
::定义时间
set "data_time=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%"

::备份数据库命令
cd /d "C:\Program Files\MySQL\MySQL Server 8.0\bin"

mysqldump --opt --single-transaction=TRUE --user=root --password=123456 --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "icss" > D:\mysql_back\mysql_backup\db_backup_%data_time%.sql

cd /d D:\mysql_back\mysql_backup
git add -A
git commit -am  "%data_time%mysql_backup"
git push -f origin master
@echo on
rem ******MySQL backup end********

其中,forfiles删除过期文件的命令,-d -30删除30天的文件。C:\Program Files\MySQL\MySQL Server 8.0\bin 为 MySQL 安装时,mysqldump.exe文件所在路径,--user=root 指 MySQL 用户名为 root --password=123456 指 MySQL 密码为123456,"icss" 为要备份的数据库的名称,icss_backup_%data_time%.sql, 为备份文件的名称,这个名称是根据当前的时间规则生成的,比如今天生产的备份文件,名称为icss_backup_20200610012120.sql 。

D:\mysql_back\mysql_backup 为本地仓库的路径。

运行效果如下:

:如果出现报错

 ! [remote rejected] master -> master (pre-receive hook declined)

在项目的【Setting】中的【Protected branches】,默认情况下【master】分支是处于被保护状态下的。

解决方法:

3.创建定时计划运行mysql备份批处理

 打开:计算机管理--系统工具--任务计划程序    找到创建任务

任务名 mysql_backup 备注 mysql定时备份以及删除过期备份

设置触发器

指定操作脚本

成功,效果如下:

 

参考:https://blog.csdn.net/qq_37103010/article/details/78900553   Windows 下 MySQL 简单定时自动备份、删除过期备份

参考:https://blog.csdn.net/cn_1937/article/details/90714019  俩种方法教你避免git push提交远程仓库每次输入用户名和密码

参考:https://blog.csdn.net/yc1022/article/details/56487680  git仓库删除所有提交历史记录,成为一个干净的新仓库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值