本地备份批处理:
备份所有数据库:
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。
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
|
|