实现 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 相关文章推荐
php中iconv函数使用方法
May 24 PHP
php dirname(__FILE__) 获取当前文件的绝对路径
Jun 28 PHP
php数组函数序列之array_keys() - 获取数组键名
Oct 30 PHP
PHP安全防范技巧分享
Nov 03 PHP
PHP实现数字补零功能的2个函数介绍
May 12 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
Nov 18 PHP
php中get_defined_constants函数用法实例分析
May 12 PHP
PHP开发中常用的十个代码样例
Feb 02 PHP
PHP使用数组实现矩阵数学运算的方法示例
May 29 PHP
PHP curl批处理及多请求并发实现方法分析
Aug 15 PHP
Laravel 创建指定表 migrate的例子
Oct 09 PHP
Laravel使用模型实现like模糊查询的例子
Oct 24 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笔记之:初探PHPcms模块开发介绍
2013/04/26 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
2016/10/11 PHP
php+js实现百度地图多点标注的方法
2016/11/30 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
图片按比例缩放函数
2006/06/26 Javascript
基于jQuery的为attr添加id title等效果的实现代码
2011/04/20 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
2016/09/16 Javascript
jquery事件绑定解绑机制源码解析
2016/09/19 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
几行js代码实现自适应
2017/02/24 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
vue单页缓存方案分析及实现
2018/09/25 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
2018/11/13 Javascript
判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号
2019/04/28 Javascript
python3.5使用tkinter制作记事本
2016/06/20 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
Python网络编程详解
2017/10/31 Python
Python中将两个或多个list合成一个list的方法小结
2019/05/12 Python
Python Django中间件,中间件函数,全局异常处理操作示例
2019/11/08 Python
法国娇韵诗官方旗舰店:Clarins是来自法国的天然护肤品牌
2018/06/30 全球购物
马来西亚户外装备商店:PTT Outdoor
2019/07/13 全球购物
J2EE面试题大全
2016/08/06 面试题
无工作经验者个人求职信范文
2013/12/22 职场文书
计算机专业职业生涯规划范文
2014/01/19 职场文书
信用卡工作证明模板
2014/09/14 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
OpenCV中resize函数插值算法的实现过程(五种)
2021/06/05 Python
mysq启动失败问题及场景分析
2021/07/15 MySQL