首页 > 网站制作 > 在windows下自动备份mysql

在windows下自动备份mysql

2008年10月22日
289 次阅读 评论 发表评论

终于让服务器每天早上备份一次 MySQL 数据库并自动打包,同时删除 5 天前的备份文件. 分享如下.
1. 环境: windows server 2003 + Apache 2.x + PHP5.x+ MySQL 5.x  IIS6 下未测试

2. 假设 PHP 安装目录为 D:/php ,MySQL 安装目录为 D:/mysql.

3. 在 D:/php 下建立目录 WinRAR, 把你 winrar 安装目录下的 WinRAR.exe 和 RARReg.KEY 复制到 D:/php/WinRAR .

4. D:/php 下建立文件 mysql_backup.php:


  1. <?
  2.  
  3. /*/////////////////////////
  4. #FileName: mysql_backup.php
  5. ////////////////////////*/
  6.  
  7. //保存目录,路径要用反斜杠.您需要手动建立它.
  8. $store_folder = &#039;D:&#92;databse_backup&#039;;
  9.  
  10. //用户名和密码
  11. //该帐号须有操作&#91;所有&#93;的数据库及FILE的权限
  12. //否则有些数据库不能备份.
  13. $db_username = "root";
  14. $db_password = "";
  15.  
  16. $time=time();
  17.  
  18. $nowdir = "$store_folder&#92;&#92;".date("Ymd",$time)."";
  19. if(file_exists("$nowdir.rar")) die("File exists.&#92;n");
  20. @mkdir($nowdir);
  21.  
  22. mysql_connect("localhost","$db_username","$db_password");
  23. $query=mysql_list_dbs();
  24.  
  25. while($result=mysql_fetch_array($query)){
  26.     system (dirname(__FILE__).&#039;&#92;..&#92;mysql&#92;bin&#92;mysqldump --opt &#039;."$result&#91;Database&#93; -u{$db_username} ".($db_password?"-p{$db_password}":"")." > $nowdir&#92;&#92;$result&#91;Database&#93;.sql");
  27.     echo "dumping database `$result&#91;Database&#93;`...&#92;n";
  28. }
  29. echo "&#92;nWinrar loading...&#92;n";
  30.  
  31. system( dirname(__FILE__)."&#92;&#92;WinRAR&#92;&#92;WinRAR.exe a -ep1 -r -o+ -m5 -df &#92;"$nowdir.rar&#92;" &#92;"$nowdir&#92;" " );
  32.  
  33. //删除 5 天前的文件
  34. @unlink("$store_folder&#92;&#92;".date("Ymd",$time-86400*5).".rar");
  35.  
  36. echo "&#92;nOK!&#92;n";
  37.  
  38. ?>


5. D:/php 下建立文件 mysql_backup.bat,内容只有一句:


  1. php.exe mysql_backup.php



6. 双击该 bat 文件运行,如果能备份了,OK,下一步添加任务计划.

7. 把 D:/php/mysql_backup 添加到任务计划,时间选每天.

网站制作 , , ,

  1. 目前还没有任何评论.
  1. 目前还没有任何 trackbacks 和 pingbacks.