找回密码
 注册
首页 ≡≡网络技术≡≡ 数据库 windows下Mysql自动备份与恢复的方法

windows下Mysql自动备份与恢复的方法

灰儿 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

您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。