Windows环境下进行mysql数据库备份[通俗易懂]

Windows环境下进行mysql数据库备份[通俗易懂]备份功能 使用 mysqldump 进行数据库备份 跨主机备份 还原数据库 Windows 定时执行脚本任务 使用 mysqldump 进行数据库备份 mysql 数据库自带备份命令 mysqldump 可对数据库进行备份操作 最简单的备份是将数据库备份至本地 生成 sql 文件 编写备份脚本文件 创建一个 txt 文件 写入批处理脚本 再将文件的后缀改为 bat 变为批处理脚本文件 rem

备份功能

使用mysqldump进行数据库备份

跨主机备份

还原数据库

Windows定时执行脚本任务

使用mysqldump进行数据库备份

mysql数据库自带备份命令mysqldump,可对数据库进行备份操作
最简单的备份是将数据库备份至本地,生成 **.sql文件

编写备份脚本文件
(创建一个txt文件,写入批处理脚本,再将文件的后缀改为.bat变为批处理脚本文件)

rem autherBeginnerXiao
rem date:20200814
rem ******Backup MySQL Start******
@echo off
::设置时间变量
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"

::创建存储的文件夹
if not exist "D:\mysql_backup" md "D:\mysql_backup"

::执行备份操作
"D:\mysql-8.0.20-winx64\bin\mysqldump" --opt --user=root --password=root --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "demo" >D:\mysql_backup\backup_demo_%Ymd%.sql

::删除两周前的备份数据
forfiles /p "D:\mysql_backup" /m backup_*.sql -d -14 /c "cmd /c del /f @path"

@echo on
rem ******Backup MySQL End******

其中一些关键语句解释:

为备份文件存储位置设立一个文件夹,即如果不存在该文件就md创建该文件夹

	::创建存储的文件夹
if not exist "D:\mysql_backup" md "D:\mysql_backup"

备份操作:
“D:\mysql-8.0.20-winx64\bin\mysqldump” :执行本地mysql文件安装路径的bin文件夹中的mysqldump
–single-transaction=TRUE: 备份时没有锁表
–user=root :mysql帐号
–password=root :mysql密码
–host=127.0.0.1 :mysql的ip地址
–port=3306 :mysql的端口号
–default-character-set=utf8 :备份默认编码
events “demo” :进行备份的数据库名称
>D:\mysql_backup\backup_demo_%Ymd%.sql :备份文件存储的路径
set “Ymd=%date:0,4%%date:5,2%%date:~8,2%” :设置备份的日期参数,以供给sql命名使用
关于时间参数的参考:
%date:~0,10% //提取年月日信息
%date:~-3% //提取星期几信息
%time:~0,5% //提取时间中的时和分
%time:~0,-3% //提取时和分和秒信息
*注意由于脚本文件以空格和逗号进行分隔执行,所以有关路径的如果路径中有空格,必须以双引号引起来
*通常建议有关路径的都用双引号引起来

::执行备份操作
"D:\mysql-8.0.20-winx64\bin\mysqldump" --opt --user=root --password=root --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "demo" >D:\mysql_backup\backup_demo_%Ymd%.sql

对备份文件进行过期删除处理
Forfiles:从文件夹或树中选择要进行批处理的文件。
语法:
forfiles [/p Path ] [/m SearchMask ] [/s ] [/c Command ] [/d [{+ | – }] [{MM / DD / YYYY | DD }]]
参数:
/p Path:指定Path ,表明要从哪里开始搜索。默认的文件夹是当前工作目录,该目录通过键入句号(.) 指定。
/m SearchMask:按照SearchMask 搜索文件。默认的SearchMask 是*.* 。
/m backup_*.sql 指的是搜索以backup_为前缀,.sql为后缀的文件
/s:指示forfiles 在子目录中搜索。
/c Command:在每个文件上运行指定的Command 。带有空格的命令字符串必须用引号括起来。默认的Command 是”cmd /c echo @file” 。
/d [{+ | – }] [{MM / DD / YYYY | DD }]:选择日期大于或等于(+ )(或者小于或等于(- ))指定日期的文件,其中MM / DD / YYYY 是指定的日期,DD 是当前日期减去DD 天。如果未指定+ 或- ,则使用+ 。DD 的有效范围是0 – 32768。
-d -14:即前14天

::删除两周前的备份数据
forfiles /p "D:\mysql_backup" /m backup_*.sql -d -14 /c "cmd /c del /f @path"

跨主机备份

(一)将需要的数据库备份至其他主机的指定数据库内
语法:
mysqldump –host=源数据库ip -u源数据库账户 -p源数据库密码 –opt 要备份的数据库 | mysql –host=目标机器ip -u目标数据库用户名 -p目标数据库密码 -C 目标数据库

mysqldump --host=127.0.0.1 -uroot -proot --opt demo | mysql --host=11.11.11.11  -uroot -proot -C demo

(二)远程备份数据库的sql文件
语法:

"D:\mysql-8.0.20-winx64\bin\mysqldump" --opt --user=root --password=root --host=远程数据库ip --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "demo" >D:\mysql_backup\backup_demo_%Ymd%.sql

注:
进行远程备份的前提是,远程数据库需要创建一个对本机IP能够访问的用户,创建远程访问用户操作,见blog:MySQL数据库用户创建、修改、授权及远程访问

还原数据库

两种还原方法:

mysqldump -uroot -proot -h127.0.0.1 demo < "D:\mysql_backup\backup_demo_20200814.sql"
mysql -uroot -proot demo< "D:\mysql_backup\backup_demo_20200814.sql"

Windows定时执行脚本任务

我们可以通过设定Windows定时任务来实现定时运行备份脚本,以达到定时备份的目的
1.可以在程序搜索列表中搜索“任务计划程序”


2.打开了任务计划程序后点击右侧的“创建基本任务”,并对计划任务的名称和描述进行编写:


3.选择定时执行的周期:


4.设置你所需要执行的时间,备份一般可以放在深夜进行


5.让该定时任务启动脚本程序


6.选择编写完成的备份脚本文件:


7.此时会给我们一个任务概述,确认信息无误后点击完成


8.创建好后,可在任务列表中看到我们所创建的任务,可以通过右键该条任务进行删除等处理


本文为编程小白自学知识归纳,如有错误与不足敬请指正!

编程小号
上一篇 2025-02-08 23:06
下一篇 2025-03-14 19:17

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/134301.html