前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows环境下进行mysql数据库备份

Windows环境下进行mysql数据库备份

原创
作者头像
用户1685462
修改2021-08-05 18:21:06
2.1K0
修改2021-08-05 18:21:06
举报
文章被收录于专栏:网站教程网站教程

使用mysqldump进行数据库备份

mysql数据库自带备份命令mysqldump,可对数据库进行备份操作

最简单的备份是将数据库备份至本地,生成 **.sql文件

编写备份脚本文件

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

代码语言:javascript
复制
rem autherBeginnerXiao
rem date:20200814
rem ******Backup MySQL Start******
@echo off

::设置时间变量

代码语言:javascript
复制
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"

::创建存储的文件夹

代码语言:javascript
复制
if not exist "D:\mysql_backup" md "D:\mysql_backup"

::执行备份操作

代码语言:javascript
复制
"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

::删除两周前的备份数据

代码语言:javascript
复制
forfiles /p "D:\mysql_backup" /m backup_*.sql -d -14 /c "cmd /c del /f @path"

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

其中一些关键语句解释:

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

::创建存储的文件夹

代码语言:javascript
复制
    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% //提取时和分和秒信息

*注意由于脚本文件以空格和逗号进行分隔执行,所以有关路径的如果路径中有空格,必须以双引号引起来

*通常建议有关路径的都用双引号引起来

::执行备份操作

代码语言:javascript
复制
"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:从文件夹或树中选择要进行批处理的文件。

语法:

代码语言:javascript
复制
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天

::删除两周前的备份数据

代码语言:javascript
复制
forfiles /p "D:\mysql_backup" /m backup_*.sql -d -14 /c "cmd /c del /f @path"

跨主机备份

(一)将需要的数据库备份至其他主机的指定数据库内

语法:

代码语言:javascript
复制
mysqldump --host=源数据库ip -u源数据库账户 -p源数据库密码 --opt 要备份的数据库 | mysql --host=目标机器ip -u目标数据库用户名 -p目标数据库密码 -C 目标数据库

代码语言:javascript
复制
mysqldump --host=127.0.0.1 -uroot -proot --opt demo | mysql --host=11.11.11.11  -uroot -proot -C demo

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

语法:

代码语言:javascript
复制
"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数据库用户创建、修改、授权及远程访问

还原数据库

两种还原方法:

代码语言:javascript
复制
mysqldump -uroot -proot -h127.0.0.1 demo < "D:\mysql_backup\backup_demo_20200814.sql"
代码语言:javascript
复制
mysql -uroot -proot demo< "D:\mysql_backup\backup_demo_20200814.sql"

Windows定时执行脚本任务

我们可以通过设定Windows定时任务来实现定时运行备份脚本,以达到定时备份的目的

1.可以在程序搜索列表中搜索“任务计划程序”

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

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

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

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

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

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档