Mysql采用mysqldump备份为sql文件实现脚本

Mysql采用mysqldump备份为sql文件实现脚本

第一种写法

在这里插入代码片
```@echo off

set h=%time:~0,2%
set h=%h: =0%
set hhmiss=%date:~0,4%%date:~5,2%%date:~8,2%%h%%time:~3,2%%time:~6,2%
set "folder=%date:~0,4%%date:~5,2%%date:~8,2%"
::自动创建当天文件夹(dbBack这个文件夹需要自行创建)
if not exist  D:\dbBack\%folder% (md  D:\dbBack\%folder%)
::(mysql路径)\bin\mysqldump --opt -u 数据库账号 -p数据库密码 数据库名称 >输出地址
"C:\Program Files\MySQL\MySQL Server 5.7\bin"\mysqldump --opt -uroot -p123456  test > D:\dbBack\%folder%\test.sql
@echo on
::正式运行环境把pause去掉,不然cmd黑窗口会一直保留
::pause

在这里要注意下,mysql的路径如果安装是按照默认的地址安装,则因为在地址中存在空格,如“C:\Program Files\MySQL\MySQL Server 5.7\bin”,则需要加上双引号,如不存在空格,则并不需要加上双引号。

第二种写法

%1  mshta vbscript:createobject("wscript.shell").run("""%~0"" rem",0)(window.close)&&exit
@echo off

forfiles /p "D:\backup_data\54" /m test_*.sql -d -7 /c "cmd /c del /f @path"

set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%"

"C:\Program Files\MySQL\MySQL Server 5.7\bin"\mysqldump -h 127.0.0.1 --opt  -u root --password="123456" --default-character-set=utf8 test > D:\backup_data\54\test_%Ymd%.sql
@echo on

相对于第一种写法,第二种增加了在备份数据库时,会自动删除七天之外的历史备份数据(但是文件存储地址需先手动创建),在这里的具体语句为forfiles /p "D:\backup_data\54" /m zf_ahs_platform_*.sql -d -7 /c "cmd /c del /f @path"在这里要注意的是,大家要根据自己所想存储的位置,修改地址,如我这边的地址为:D:\backup_data\54,也要将自己的数据库存储名称发生改变。如我这里的为:test_*.,详情如下图所示:
在这里插入图片描述

第三种写法

%1  mshta vbscript:createobject("wscript.shell").run("""%~0"" rem",0)(window.close)&&exit
@echo off
set h=%time:~0,2%
set h=%h: =0%
set hhmiss=%date:~0,4%%date:~5,2%%date:~8,2%%h%%time:~3,2%%time:~6,2%
set "folder=%date:~0,4%%date:~5,2%%date:~8,2%"
::自动创建当天文件夹(dbBack这个文件夹需要自行创建)
if not exist  D:\dbBacm\%folder% (md  D:\dbBacm\%folder%)

set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%"

"C:\Program Files\MySQL\MySQL Server 5.7\bin"\mysqldump -h 127.0.0.1 --opt  -u root --password="123456" --default-character-set=utf8 test > D:\dbBacm\%folder%\test_%Ymd%.sql
@echo on

`第三种写法其实是对前两种写的一种融合,主要是为了解决,如数据备份存储位置不存在,则自动创建的需求。

第四种写法

echo 取日期、时间变量值
set "yMd=%date:~,4%%date:~5,2%%date:~8,2%"
set "hms=%time:~,2%%time:~3,2%%time:~6,2%"
set filename=%date%_%time%

echo %hms%
forfiles /p "D:\DBBack" /m test_*.sql -d -7 /c "cmd /c del /f @path"
"C:/Program Files/MySQL/MySQL Server 5.7/bin/mysqldump.exe" -uroot -p123456 --opt --default-character-set=utf8  -R -E --single-transaction test >D:/DBBack/test_%yMd%%hms%.sql

echo 导出已经完成

#pause

第四种写法主要是增加了中文注释的功能,以便于提示大家数据库已经完成备份,这种写法不需要指定数据库相关ip。

写法有很多种,大家可以随意组合。

猜你喜欢

转载自blog.csdn.net/Acompanys/article/details/124969759