实现 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 相关文章推荐
自动跳转中英文页面
Oct 09 PHP
php判断字符以及字符串的包含方法属性
Aug 30 PHP
php miniBB中文乱码问题解决方法
Nov 25 PHP
php获取网页内容方法总结
Dec 04 PHP
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
Oct 12 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
Mar 25 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
Jun 19 PHP
PHP中SimpleXML函数用法分析
Nov 26 PHP
php对象在内存中的存在形式分析
Feb 03 PHP
基于php实现七牛抓取远程图片
Dec 01 PHP
PHP PDOStatement::debugDumpParams讲解
Jan 30 PHP
php中的钩子理解及应用实例分析
Aug 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
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
功能强大的php分页函数
2016/07/20 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
js操作时间(年-月-日 时-分-秒 星期几)
2010/06/20 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
JQuery实现鼠标移动到图片上显示边框效果
2014/01/09 Javascript
8个超实用的jQuery功能代码分享
2015/01/08 Javascript
Jquery Ajax xmlhttp请求成功问题
2015/02/04 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
简介AngularJS的视图功能应用
2015/06/17 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
jQuery使用Layer弹出层插件闪退问题
2016/12/22 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
Vue组件中slot的用法
2018/01/30 Javascript
利用Node.js批量抓取高清妹子图片实例教程
2018/08/02 Javascript
H5+C3+JS实现双人对战五子棋游戏(UI篇)
2020/05/28 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
Vue实现星级评价效果实例详解
2019/12/30 Javascript
在HTML中使用JavaScript的两种方法
2020/12/24 Javascript
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
Python网络编程之TCP与UDP协议套接字用法示例
2018/02/02 Python
python 获取当天每个准点时间戳的实例
2018/05/22 Python
Python实现的knn算法示例
2018/06/14 Python
对python多线程与global变量详解
2018/11/09 Python
Python如何通过Flask-Mail发送电子邮件
2020/01/29 Python
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
详解HTML5中ol标签的用法
2015/09/08 HTML / CSS
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
医学类导师推荐信范文
2013/11/19 职场文书
宗教学大学生职业生涯规划范文
2014/02/08 职场文书
关于军训的感想
2015/08/07 职场文书
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server