mysqldump -h192.168.1.123 -uroot -pdump_user -A > test.sql
这个语句可以备份msyql的所有数据库问题是现在我想怎么让备份的文件能分开,也就是每个数据库对应一个备份文件我用的bat文件来定时备份的。@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改成一个变量,对应每个库名
当然也可以没数据库的写语句
我的库有点多,而且还在不断地增加,这样每次都得修改一下,会相对麻烦。
这个语句可以备份msyql的所有数据库问题是现在我想怎么让备份的文件能分开,也就是每个数据库对应一个备份文件我用的bat文件来定时备份的。@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改成一个变量,对应每个库名
当然也可以没数据库的写语句
我的库有点多,而且还在不断地增加,这样每次都得修改一下,会相对麻烦。
用RS.OPEN的方式打开,然后取着每个库的名字,然后写到一起。
"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偶不会写。。只知道思路
[code]
for /f %i in ('mysql -u用户 -p密码 -hIP -N -e "use 库名; show tables";') do mysqldump -u用户 -p密码 -hIP %i > %i.sql
[/code]
for /f %i in ('mysql -u用户 -p密码 -hIP -N -e "use 库名; show tables";') do mysqldump -u用户 -p密码 -hIP 数据库名 %i > %i.sql
能不能在bat文件里面完成这些,O(∩_∩)O哈哈~
[code]
for /f %i in ('mysql -u用户 -p密码 -hIP -N -e "show databases";') do mysqldump -u用户 -p密码 -hIP %i > %i.sql
[/code]
for /f %i in ('mysql -u用户 -p密码 -hIP -N -e "show databases";') do mysqldump -u用户 -p密码 -hIP %i > %i.sql
这个就是 bat 语句,可以直接在 bat 中使用。
-N 不显示列名,否则的话,循环时要去掉第一个名字,那就是 show databases 所显示的“Database”
-e 是直接执行后续的命令如下为对比:不带 -N 参数:+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
带 -N 参数:+--------------------+
| information_schema |
+--------------------+
echo 现在是 %DATE% %TIME%
echo.
echo MySQL数据库备份
echo *****************************
echo.
SET "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
md "E:\Backup\Mysql\%Ymd%" for /f %i in ('F:\APMServ5.2.6\MySQL5.1\bin\mysql -h192.57.20.101 -uroot -p123 -N -e " show databases";')
do F:\APMServ5.2.6\MySQL5.1\bin\mysqldump -h192.57.20.101 -uroot -p123 %i >"E:\Backup\Mysql\%Ymd%\%i.sql"echo.
echo MySQL数据库备份完成,请进行检查
echo.
echo.
pause这个是我修改过得,貌似那里出了点问题,打开都直接关掉了
没有执行
300分奉上,在给指点一下。
现在提示 More?
这是什么意思
echo 现在是 %DATE% %TIME%
echo.
echo MySQL数据库备份
echo *****************************
echo.
SET "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"for /f %%i in ('mysql -hIP -u用户 -p密码 -N -e "show databases";') do echo %%iecho.
echo MySQL数据库备份完成,请进行检查
echo.
echo.
pause
FROM (
SELECT concat('if exist "','D:\/mysql_bk\/',date_format(CURDATE(),'%Y%m%d'),
'" rmdir /s /q "D:\/mysql_bk\/',date_format(CURDATE(),'%Y%m%d'),'"') as bk_sql, 1 as cmd_order
UNION ALL
SELECT concat('md "','D:\/mysql_bk\/',date_format(CURDATE(),'%Y%m%d'),'"') as bk_sql, 2 as cmd_order
UNION ALL
SELECT concat('mysqldump -uroot -pgroupon1@3$ ',SCHEMA_NAME,' > ',
'"','D:\/mysql_bk\/',date_format(CURDATE(),'%Y%m%d'),
'\/',SCHEMA_NAME,'_',date_format(CURDATE(),'%Y%m%d'),'.sql','"') as bk_sql, 3 as cmd_order
FROM information_schema.SCHEMATA ) t
ORDER BY t.cmd_order asc
into outfile 'D:/mysql_bk/mysql_dump.bat';-- Step 2: 在 D:\mysql_bk 目录下创建一个 mysql_bk.bat 文件,其内容如下:if exist "D:\mysql_bk\mysql_dump.bat" del /s /q "D:\mysql_bk\mysql_dump.bat"mysql -uroot -pgroupon1@3$ information_schema < D:\mysql_bk\mysql_bk.sql
call D:/mysql_bk/mysql_dump.bat /c /q-- Step 3: 创建一个任务计划,每天凌晨 2:00 执行 mysql_bk.bat 文件即可
FROM (
SELECT concat('if exist "','D:\/mysql_bk\/',date_format(CURDATE(),'%Y%m%d'),
'" rmdir /s /q "D:\/mysql_bk\/',date_format(CURDATE(),'%Y%m%d'),'"') as bk_sql, 1 as cmd_order
UNION ALL
SELECT concat('md "','D:\/mysql_bk\/',date_format(CURDATE(),'%Y%m%d'),'"') as bk_sql, 2 as cmd_order
UNION ALL
SELECT concat('mysqldump -uroot -pgroupon1@3$ ',SCHEMA_NAME,' > ',
'"','D:\/mysql_bk\/',date_format(CURDATE(),'%Y%m%d'),
'\/',SCHEMA_NAME,'_',date_format(CURDATE(),'%Y%m%d'),'.sql','"') as bk_sql, 3 as cmd_order
FROM information_schema.SCHEMATA ) t
ORDER BY t.cmd_order asc
into outfile 'D:/mysql_bk/mysql_dump.bat';-- Step 2: 在 D:\mysql_bk 目录下创建一个 mysql_bk.bat 文件,其内容如下:if exist "D:\mysql_bk\mysql_dump.bat" del /s /q "D:\mysql_bk\mysql_dump.bat"mysql -uroot -pgroupon1@3$ information_schema < D:\mysql_bk\mysql_bk.sql
call D:/mysql_bk/mysql_dump.bat /c /q-- Step 3: 创建一个任务计划,每天凌晨 2:00 执行 mysql_bk.bat 文件即可
FROM (
SELECT concat('if exist "','D:\/mysql_bk\/',date_format(CURDATE(),'%Y%m%d'),
'" rmdir /s /q "D:\/mysql_bk\/',date_format(CURDATE(),'%Y%m%d'),'"') as bk_sql, 1 as cmd_order
UNION ALL
SELECT concat('md "','D:\/mysql_bk\/',date_format(CURDATE(),'%Y%m%d'),'"') as bk_sql, 2 as cmd_order
UNION ALL
SELECT concat('mysqldump -uroot -pyourpassword ',SCHEMA_NAME,' > ',
'"','D:\/mysql_bk\/',date_format(CURDATE(),'%Y%m%d'),
'\/',SCHEMA_NAME,'_',date_format(CURDATE(),'%Y%m%d'),'.sql','"') as bk_sql, 3 as cmd_order
FROM information_schema.SCHEMATA ) t
ORDER BY t.cmd_order asc
into outfile 'D:/mysql_bk/mysql_dump.bat';-- Step 2: 在 D:\mysql_bk 目录下创建一个 mysql_bk.bat 文件,其内容如下:if exist "D:\mysql_bk\mysql_dump.bat" del /s /q "D:\mysql_bk\mysql_dump.bat"mysql -uroot -pyourpassword information_schema < D:\mysql_bk\mysql_bk.sql
call D:/mysql_bk/mysql_dump.bat /c /q-- Step 3: 创建一个任务计划,每天凌晨 2:00 执行 mysql_bk.bat 文件即可-- 注意:将 yourpassword 修改成你的数据库密码即可!-- 感觉这种方法较你的方法更为灵活,因为你可以控制你的SQL语句,排除不需要备份的数据库!