+ -
当前位置:首页 → 问答吧 → 问一个mysql mysqldump 备份的问题

问一个mysql mysqldump 备份的问题

时间:2011-08-17

来源:互联网

SQL code
mysqldump -h192.168.1.123  -uroot -pdump_user -A  > test.sql

这个语句可以备份msyql的所有数据库

问题是现在我想怎么让备份的文件能分开,也就是每个数据库对应一个备份文件

我用的bat文件来定时备份的。

C/C++ code
@echo off
SET "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
md "E:\Backup\Mysql\%Ymd%"
"F:\MySQL5.1\bin\mysqldump" -h192.168.1.123 -uroot -pwd -A > "E:\Backup\Mysql\%Ymd%\mysqldb_bak.sql"

pause


这个可以不可以把mysqldb改成一个变量,对应每个库名
当然也可以没数据库的写语句
我的库有点多,而且还在不断地增加,这样每次都得修改一下,会相对麻烦。

作者: Beirut   发布时间: 2011-08-17

写多个mysqldump语句

作者: rucypli   发布时间: 2011-08-17

set /P .... 

然后 使用 %P%

作者: happyflystone   发布时间: 2011-08-17

引用 1 楼 rucypli 的回复:
写多个mysqldump语句

只能写多个吗?
能不能写个循环获取数据库的名字,动态的给语句

然后执行备份

作者: Beirut   发布时间: 2011-08-17

还是写多个简单...

作者: mr_mablevi   发布时间: 2011-08-17

SHOW DATABASE;
用RS.OPEN的方式打开,然后取着每个库的名字,然后写到一起。

作者: lxq19851204   发布时间: 2011-08-17

show databases 可以获取所有数据库名字

然后循环生成一个bat语句

SQL code
"F:\MySQL5.1\bin\mysqldump"  -uroot -pwd xx > "E:\Backup\Mysql\%Ymd%\xx_bak.sql"
"F:\MySQL5.1\bin\mysqldump"  -uroot -pwd oo > "E:\Backup\Mysql\%Ymd%\oo_bak.sql"
"F:\MySQL5.1\bin\mysqldump"  -uroot -pwd xxoo > "E:\Backup\Mysql\%Ymd%\xxoo_bak.sql"
.....

然后再挨着执行就达到我的目的了

可是 。bat偶不会写。。只知道思路

作者: Beirut   发布时间: 2011-08-17

这个在程序中写,循环生成字符串。然后生成一个BAT,在BAT中执行。

作者: lxq19851204   发布时间: 2011-08-17