热搜词
发表于 2009-6-23 18:26:06 | 显示全部楼层 |阅读模式
本地备份批处理:

备份所有数据库:
d:\mysql\bin\mysqldump -uroot -p123456 --all-databases > d:\mysql\alldatabases_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%.sql

备份单个数据库:
d:\mysql\bin\mysqldump -uroot -p123456 dataname > d:\mysql\dataname_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%.sql

把password替换为你的密码,然后存成backup.cmd 或者 backup.bat 就可以按日期存储备份了

注:
如果用上面的脚本备份的话,有时会类似出现如下问题:
E:\MySQL Serve 5.0\bin>mysqldump.exe -uroot -p123456 abc > e:\MySQL Serve 5.0\abc.sql
错误
mysqldump: Couldn't find table: "Serve"
数据库没有备份成功,文件名没有生成正确。

原因分析:
1、路径中有空格,如这样的路径“C:\Program Files\Internet Explorer”,是会出问题的,如果确实存在了,就用双引号把路径“引”起来。
解决办法:
E:\MySQL Serve 5.0\bin>mysqldump.exe -uroot -p123456 abc > "e:\MySQL Serve 5.0\abc.sql"

2、时间格式的问题 如下图,小时处的“0”不见了,被空格替换了,现在只能人工替换成数字0。
69535dd1896829e7562c84ea.jpg
echo %time: =0% (注意:等号前面是有空格的,关键就在此处,用0替换空格)   这就是精髓所在

下面是完善的脚本:
@echo off
set hour=%time:~0,2%
D:\wamp\bin\mysql\mysql5.0.51b\bin\mysqldump.exe -u root -p123 joomla > d:\joomla_%date:~0,4%%date:~5,2%%date:~8,2%%hour: =0%%time:~3,2%%time:~6,2%.sql
这样的脚步才算完美,多谢帮助过我的人 江。

windows批处理,学好win也不容易啊!

远程备份批处理(用到IP地址端口号):
d:\mysql\bin\mysqldump.exe -h127.0.0.1 -uroot -p123456 -P3306 -t plonesite >d:\plonesite-%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%.sql

如果只保存个别数据库,将"--all-databases”换成你要保存的数据库名称即可,“%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%”用来设置保存文件的名称按时间显示。

删除在D盘backup目录下最后修改日期在5天前的文件:
forfiles /p "D:\backup" /d -5 /c "cmd /c echo deleting @file ... && del /f @path"

此命令只能用在Windows Server 2003系统中,如果操作系统是Windows 2000/XP 就比较麻烦,因为它们没有forfiles命令,需要到windows 2003中把forlies命令复制过来才能使用。

相关链接:
用批处理文件删除n天前的文件

http://www.admin365.cn/forum.php?mod=viewthread&tid=3814

用vbs脚本实现mysql数据库的备份:

Dim oShell,user,pass,db,path,name   
user="root"
pass="123456"
db="test"
path="c:\"   
name=db&"_"&Year(date)&"-"&month(date)&"-"&day(date)&".sql"   
Set oShell = WScript.CreateObject ("WSCript.shell")   
oShell.run "cmd /C C:\mysql\bin\mysqldump.exe -u"& user &" -p"& pass & space(1) & db &">"&path&name   
Set oShell = Nothing

将以上脚本保存为backup_mysql.vbs文件执行即可。

恢复数据备份文件:
1、恢复用"--all-databases”选项备份的数据库:
d:\mysql\bin\mysql -u root -p123456 < 2009062322212307.sql

2、恢复指定数据库的备份:
d:\mysql\bin\mysql -u root -p123456 dataname < 2009062322212307.sql

全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-11-22 19:35 , Processed in 0.244613 second(s), 25 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team