实现 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 相关文章推荐
MySQL数据源表结构图示
Jun 05 PHP
PHP中函数内引用全局变量的方法
Oct 20 PHP
PHP 获取客户端真实IP地址多种方法小结
May 15 PHP
php设计模式 Delegation(委托模式)
Jun 26 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
Apr 21 PHP
php结合正则获取字符串中数字
Jun 19 PHP
PHP合并discuz用户脚本的方法
Aug 04 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
Mar 03 PHP
PHP实现适用于自定义的验证码类
Jun 15 PHP
PHP实现Google plus的好友拖拽分组效果
Oct 21 PHP
详解PHP处理字符串类似indexof的方法函数
Jun 11 PHP
Mac系统下安装PHP Xdebug
Mar 30 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
不错的新闻标题颜色效果
2006/12/10 Javascript
js事件(Event)知识整理
2012/10/11 Javascript
有关于eclipse配置spket需要注意的一些地方
2013/04/07 Javascript
在JS数组特定索引处指定位置插入元素的技巧
2014/08/24 Javascript
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
d3.js实现简单的网络拓扑图实例代码
2016/11/06 Javascript
详解JavaScript中数组的reduce方法
2016/12/02 Javascript
浅谈 Vue v-model指令的实现原理
2017/06/08 Javascript
Vue 获取数组键名的方法
2018/06/21 Javascript
看看“疫苗查询”小程序有温度的代码
2018/07/31 Javascript
node使用Mongoose类库实现简单的增删改查
2018/11/08 Javascript
详解vue中使用微信jssdk
2019/04/19 Javascript
史上最为详细的javascript继承(推荐)
2019/05/18 Javascript
使用Bootstrap做一个朝代历史表
2019/12/10 Javascript
Python多线程编程简单介绍
2015/04/13 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
Python获取Redis所有Key以及内容的方法
2019/02/19 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
Python转换时间的图文方法
2019/07/01 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
Python函数参数分类原理详解
2020/05/28 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
香港家用健身器材、运动器材及健康美容仪器专门店:FitBoxx
2019/12/05 全球购物
Farfetch澳大利亚官网:Farfetch Australia
2020/04/26 全球购物
工程部主管岗位职责
2013/11/17 职场文书
学校领导班子对照检查材料
2014/09/24 职场文书
保证金退回承诺函格式
2015/01/21 职场文书
画展邀请函
2015/01/31 职场文书
个人廉洁自律总结
2015/03/06 职场文书
使用numpy nonzero 找出非0元素
2021/05/14 Python
Java内存模型之happens-before概念详解
2021/06/13 Java/Android