2013-05-11 98 views
0

我想在我的web服务器上备份我的15个MySQL数据库。这个数据库列表将继续与我(希望!)不断增加的客户群一起增长。批量导出多个mysql数据库

很显然,我可以做一个MySQL转储使用此命令:

mysqldump --add-drop-table -h host -u username -p"password" databasename > filename.sql 

我的问题是,有没有什么办法批量出口MySQL数据库(和,同样,批量导入)?我是否被迫分别备份每个数据库?

事实上,我想编写脚本,这样我就可以每天通过运行.bat文件来完成。我发现这个在线(从本网站 - http://www.dougboude.com/blog/1/2009/09/7A.Batch-Script-to-Backup-MySQL-Database.cfm):

@echo off 
for /f "tokens=1" %%i in ('date /t') do set DATE_DOW=%%i 
for /f "tokens=2" %%i in ('date /t') do set DATE_DAY=%%i 
for /f %%i in ('echo %date_day:/=-%') do set DATE_DAY=%%i 
for /f %%i in ('time /t') do set DATE_TIME=%%i 
for /f %%i in ('echo %date_time::=-%') do set DATE_TIME=%%i 
rem Killing all files older than a week old... 
forfiles /D -8 /M *.zip /C "cmd /c del @fname.zip" 
"C:\mysql\bin\mysqldump" -u username -p"password" dbname >C:\mysqlbackup\%DATE_DAY%_%DATE_TIME%_database.sql 
wzzip C:\mysqlbackup\%DATE_DAY%_%DATE_TIME%_database.zip C:\mysqlbackup\%DATE_DAY%_%DATE_TIME%_database.sql -mex 

我是否需要复制/粘贴此脚本为每个数据库?

我真的很新的SSH和shell命令,所以任何帮助,非常感谢!谢谢。

+0

你可以只遍历数据库名称列表并执行上面的代码(或类似的)列表中的每个元素。您也可以在开始备份之前通过查询现有数据库来检索该列表。没有理由不能在剧本中这样做。通常你会执行一个脚本从一个条目到一个crontab。 – arkascha 2013-05-11 20:43:59

+0

mysql服务器在什么系统下运行?这很重要,因为你的解决方案显然取决于你有什么工具可用于任务... – arkascha 2013-05-11 20:47:14

回答