实现 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 相关文章推荐
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
Sep 24 PHP
php下使用iconv需要注意的问题
Nov 20 PHP
PHP获取栏目的所有子级和孙级栏目的ID号示例
Apr 01 PHP
ThinkPHP之R方法实例详解
Jun 20 PHP
php通过rmdir删除目录的简单用法
Mar 18 PHP
php删除数组中重复元素的方法
Dec 22 PHP
深入分析PHP优化及注意事项
Jul 04 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
Jul 20 PHP
php使用glob函数遍历文件和目录详解
Sep 23 PHP
Laravel中间件实现原理详解
Oct 09 PHP
PHP实现的简单对称加密与解密方法实例小结
Aug 28 PHP
php curl发送请求实例方法
Aug 01 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 in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
PHP去除字符串最后一个字符的三种方法实例
2017/03/01 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
jQuery学习笔记之jQuery的事件
2010/12/22 Javascript
jquery实现pager控件示例
2014/04/09 Javascript
javascript:void(0)的问题使用探讨
2014/04/10 Javascript
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
JS获取Table中td值的方法
2015/03/19 Javascript
Select下拉框模糊查询功能实现代码
2016/07/22 Javascript
JS实现页面数据无限加载
2016/09/13 Javascript
关于js中的鼠标事件总结
2017/07/11 Javascript
webpack打包js的方法
2018/03/12 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
Vue 如何使用props、emit实现自定义双向绑定的实现
2020/06/05 Javascript
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
python实现比较两段文本不同之处的方法
2015/05/30 Python
python发送HTTP请求的方法小结
2015/07/08 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
python 实现矩阵填充0的例子
2019/11/29 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
Python转换字典成为对象,可以用&quot;.&quot;方式访问对象属性实例
2020/05/11 Python
英国知名化妆品网站:Revolution Beauty(原TAM Beauty)
2018/02/28 全球购物
芬兰灯具网上商店:Nettilamppu.fi
2018/06/30 全球购物
英国购买威士忌网站:Master of Malt
2019/09/26 全球购物
劳资员岗位职责
2013/11/11 职场文书
高中班长自我鉴定
2013/12/20 职场文书
晚归检讨书
2014/02/19 职场文书
幼儿园清明节活动总结
2014/07/04 职场文书
2014年小学英语教师工作总
2014/12/03 职场文书
高一作文之乐趣
2019/11/21 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers
goland 清除所有的默认设置操作
2021/04/28 Golang
CSS 新特性 contain控制页面的重绘与重排问题
2021/04/30 HTML / CSS
Python中request的基本使用解决乱码问题
2022/04/12 Python