实现 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 相关文章推荐
使用Limit参数优化MySQL查询的方法
Nov 12 PHP
PHP写MySQL数据 实现代码
Jun 15 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
Jun 21 PHP
微信access_token的获取开发示例
Apr 16 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
Sep 23 PHP
php语言中使用json的技巧及json的实现代码详解
Oct 27 PHP
PHP性能优化大全(php.ini)
May 20 PHP
浅谈PHP安全防护之Web攻击
Jan 03 PHP
快速解决PHP调用Word组件DCOM权限的问题
Dec 27 PHP
PHP基于面向对象实现的留言本功能实例
Apr 04 PHP
thinkPHP5框架设置404、403等http状态页面的方法
Jun 05 PHP
PHP var关键字相关原理及使用实例解析
Jul 11 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 面试碰到过的问题 在此做下记录
2011/06/09 PHP
PHP列出MySQL中所有数据库的方法
2015/03/12 PHP
Yii2 RESTful中api的使用及开发实例详解
2016/07/06 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
js同时按下两个方向键
2007/12/01 Javascript
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
2010/03/04 Javascript
jquery 新浪网易的评论块制作
2010/07/01 Javascript
基于jQuery架构javascript基础体系
2011/01/01 Javascript
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
JS 页面计时器示例代码
2013/10/28 Javascript
轮播的简单实现方法
2016/07/28 Javascript
vue2中的keep-alive使用总结及注意事项
2017/12/21 Javascript
微信小程序文章详情页面实现代码
2018/09/10 Javascript
微信小程序indexOf的替换方法(推荐)
2020/01/14 Javascript
JavaScript监听键盘事件代码实现
2020/06/03 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
如何使用JavaScript实现无缝滚动自动播放轮播图效果
2020/08/20 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
python控制台显示时钟的示例
2014/02/24 Python
python操作sqlite的CRUD实例分析
2015/05/08 Python
python获取list下标及其值的简单方法
2016/09/12 Python
Python设计模式之建造者模式实例详解
2019/01/17 Python
python分割一个文本为多个文本的方法
2019/07/22 Python
深入浅析Python 命令行模块 Click
2020/03/11 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
2020/11/24 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
2021/01/28 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
后勤副校长自我鉴定
2013/10/13 职场文书
个人收入证明范本
2014/09/18 职场文书
解除租房协议书
2014/12/03 职场文书
结婚老公保证书
2015/02/26 职场文书
故意伤害罪辩护词
2015/05/21 职场文书
2015年公司国庆放假通知
2015/07/30 职场文书
大学副班长竞选稿
2015/11/21 职场文书
Python爬虫之爬取某文库文档数据
2021/04/21 Python
HTML+CSS 实现顶部导航栏菜单制作
2021/06/03 HTML / CSS