实现 win2003 下 mysql 数据库每天自动备份


Posted in PHP onDecember 06, 2006

1. 环境: windows server 2003 +  PHP5 + MySQL 5.1.6. 
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: 

代码如下: 

<?  
//保存目录,路径要用反斜杠.您需要手动建立它.  
$store_folder = 'D:\databse_backup';  

//用户名和密码  
//该帐号须有操作[所有]的数据库及FILE的权限  
//否则有些数据库不能备份.  
$db_username = "root";  
$db_password = "";  

$time=time();  

$nowdir = "$store_folder\\".date("Ymd",$time)."";  
if(file_exists("$nowdir.rar")) die("File exists.\r\n");  
@mkdir($nowdir);  

mysql_connect("localhost","$db_username","$db_password");  
$query=mysql_list_dbs();  


$command = '';  
while($result=mysql_fetch_array($query)){  
  $command .= dirname(__FILE__).'\..\mysql\bin\mysqldump --opt '."$result[Database] -u{$db_username} ".($db_password?"-p{$db_password}":"")." > $nowdir\\$result[Database].sql \r\n";  
  $command .= "echo dumping database `$result[Database]`... \r\n";  
}  
  $command .= "echo Winrar loading...\r\n";  

$command .= dirname(__FILE__)."\\WinRAR\\WinRAR.exe a -ep1 -r -o+ -m5 -df \"$nowdir.rar\" \"$nowdir\" \r\n";  

$command .= "echo OK!\r\n";  

$command .= "del mysqldumping_temp.bat\r\n";  

$fp = fopen('mysqldumping_temp.bat','w');  
fwrite($fp,$command);  
fclose($fp);  


//删除 5 天前的文件  
@unlink("$store_folder\\".date("Ymd",$time-86400*5).".rar");  
?>

或者用下面的代码:

<?
//保存目录,路径要用反斜杠.您需要手动建立它.
$store_folder = ‘D:\database_backup';
//用户名和密码
//该帐号须有操作[所有]的数据库及FILE的权限
//否则有些数据库不能备份.
$db_username = “root”;
$db_password = “”;
$time=time();
$nowdir = “$store_folder\\”.date(“Ymd”,$time).””;
if(file_exists(“$nowdir.rar”)) die(“File exists.\n”);
@mkdir($nowdir);
mysql_connect(“localhost”,”$db_username”,”$db_password”);
$query=mysql_list_dbs();
while($result=mysql_fetch_array($query)){
system (dirname(__FILE__).'\..\mysql\bin\mysqldump ?opt ‘.”$result[Database] -u{$db_username} “.($db_password?”-p{$db_password}”:””).” > $nowdir\\$result[Database].sql”);
echo “dumping database `$result[Database]`…\n”;
}
echo “\nWinrar loading…\n”;
system( dirname(__FILE__).”\\WinRAR\\WinRAR.exe a -ep1 -r -o+ -m5 -df \”$nowdir.rar\” \”$nowdir\” ” );
//删除 5 天前的文件
@unlink(“$store_folder\\”.date(“Ymd”,$time-86400*5).”.rar”);
echo “\nOK!\n”;
?>

5. D:/php 下建立文件 mysql_backup.bat,内容为: 

echo off  
php.exe mysql_backup.php  
if exist mysqldumping_temp.bat call mysqldumping_temp.bat

6. 双击该 bat 文件运行,如果能备份了,OK,下一步添加任务计划. 
7. 把 D:/php/mysql_backup 添加到任务计划,时间选每天. 根据服务器的监测结果,每天早上 5-8 时为流量低峰期. 由于 5-7 时有些数据库的清理工作,我把时间定在了早上 8 点整. 

原作者:faisun 
Website: http://www.softpure.com

PHP 相关文章推荐
第七节 类的静态成员 [7]
Oct 09 PHP
基于mysql的论坛(7)
Oct 09 PHP
php.ini 配置文件的深入解析
Jun 17 PHP
php文字水印和php图片水印实现代码(二种加水印方法)
Dec 25 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
Aug 21 PHP
再Docker中架设完整的WordPress站点全攻略
Jul 29 PHP
Yii2使用自带的UploadedFile实现的文件上传
Jun 20 PHP
thinkPHP5.0框架引入Traits功能实例分析
Mar 18 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
Oct 14 PHP
php桥接模式应用案例分析
Oct 23 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
Feb 07 PHP
thinkphp 获取控制器及控制器方法
Apr 16 PHP
同一空间绑定多个域名而实现访问不同页面的PHP代码
Dec 06 #PHP
PHP产生随机字符串函数
Dec 06 #PHP
如何使用PHP往windows中添加用户
Dec 06 #PHP
php巧获服务器端信息
Dec 06 #PHP
Apache2 httpd.conf 中文版
Dec 06 #PHP
PHP 字符串操作入门教程
Dec 06 #PHP
让你的网站首页自动选择语言转跳
Dec 06 #PHP
You might like
php 数组排序 array_multisort与uasort的区别
2011/03/24 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
JavaScript 应用技巧集合[推荐]
2009/08/30 Javascript
jQuery技巧大放送 学习jquery的朋友可以看下
2009/10/14 Javascript
javascript利用初始化数据装配模版的实现代码
2010/11/17 Javascript
仅IE9/10同时支持script元素的onload和onreadystatechange事件分析
2011/04/27 Javascript
js判断鼠标左、中、右键哪个被点击的方法
2015/01/27 Javascript
深入浅析javascript中的作用域(推荐)
2016/07/19 Javascript
AngularJS入门教程之Cookies读写操作示例
2016/11/02 Javascript
将鼠标焦点定位到文本框最后(代码分享)
2017/01/11 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
2017/07/07 Javascript
理解 JavaScript EventEmitter
2018/03/29 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
2019/11/01 Javascript
jQuery实现鼠标拖拽登录框移动效果
2020/09/13 jQuery
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
使用python获取CPU和内存信息的思路与实现(linux系统)
2014/01/03 Python
使用beaker让Facebook的Bottle框架支持session功能
2015/04/23 Python
Django框架封装外部函数示例
2019/05/28 Python
python列表每个元素同增同减和列表元素去空格的实例
2019/07/20 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
python_array[0][0]与array[0,0]的区别详解
2020/02/18 Python
pytorch中index_select()的用法详解
2021/01/06 Python
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
什么是三层交换,说说和路由的区别在那里
2014/09/01 面试题
工作疏忽检讨书
2014/01/25 职场文书
幼儿园亲子活动方案
2014/01/29 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
2014年镇党建工作汇报材料
2014/11/02 职场文书
个人先进事迹材料范文
2014/12/29 职场文书
化工厂员工工作总结
2015/10/15 职场文书
MySQL不使用order by实现排名的三种思路总结
2021/06/02 MySQL
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis