ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*30;// 每隔半小时运行
do{
//这里是你要执行的代码 添加备份php或者还原的php的脚本,
sleep($interval);// 等待5分钟
}while(true);

一、备份数据库并下载到本地【db_backup.php】

  1. <?php
  2. // 设置SQL文件保存文件名
  3. $filename=date("Y-m-d_H-i-s")."-".$cfg_dbname.".sql";
  4. // 所保存的文件名
  5. header("Content-disposition:filename=".$filename);
  6. header("Content-type:application/octetstream");
  7. header("Pragma:no-cache");
  8. header("Expires:0");
  9. // 获取当前页面文件路径,SQL文件就导出到此文件夹内
  10. $tmpFile = (dirname(__FILE__))."\\".$filename;
  11. // 用MySQLDump命令导出数据库
  12. exec("mysqldump -u$cfg_dbuser -p$cfg_dbpwd --default-character-set=utf8 $cfg_dbname > ".$tmpFile);
  13. $file = fopen($tmpFile, "r"); // 打开文件
  14. echo fread($file,filesize($tmpFile));
  15. fclose($file);
  16. exit;
  17. ?>
<?php
// 设置SQL文件保存文件名
$filename=date("Y-m-d_H-i-s")."-".$cfg_dbname.".sql";
// 所保存的文件名
header("Content-disposition:filename=".$filename);
header("Content-type:application/octetstream");
header("Pragma:no-cache");
header("Expires:0");
// 获取当前页面文件路径,SQL文件就导出到此文件夹内
$tmpFile = (dirname(__FILE__))."\\".$filename;
// 用MySQLDump命令导出数据库
exec("mysqldump -u$cfg_dbuser -p$cfg_dbpwd --default-character-set=utf8 $cfg_dbname > ".$tmpFile);
$file = fopen($tmpFile, "r"); // 打开文件
echo fread($file,filesize($tmpFile));
fclose($file);
exit;
?>

二、还原数据库【db_restore.php】

  1. <form id="form1" name="form1" method="post" action="">
  2. 【数据库SQL文件】:<input id="sqlFile" name="sqlFile" type="file" />
  3. <input id="submit" name="submit" type="submit" value="还原" />
  4. </form>
  5. <?php
  6. // 我的数据库信息都存放到config.php文件中,所以加载此文件,如果你的不是存放到该文件中,注释此行即可;
  7. require_once((dirname(__FILE__).'/../../include/config.php'));
  8. if ( isset ( $_POST['sqlFile'] ) )
  9. {
  10. $file_name = $_POST['sqlFile']; //要导入的SQL文件名
  11. $dbhost = $cfg_dbhost; //数据库主机名
  12. $dbuser = $cfg_dbuser; //数据库用户名
  13. $dbpass = $cfg_dbpwd; //数据库密码
  14. $dbname = $cfg_dbname; //数据库名
  15. set_time_limit(0); //设置超时时间为0,表示一直执行。当php在safe mode模式下无效,此时可能会导致导入超时,此时需要分段导入
  16. $fp = @fopen($file_name, "r") or die("不能打开SQL文件 $file_name");//打开文件
  17. mysql_connect($dbhost, $dbuser, $dbpass) or die("不能连接数据库 $dbhost");//连接数据库
  18. mysql_select_db($dbname) or die ("不能打开数据库 $dbname");//打开数据库
  19. echo "<p>正在清空数据库,请稍等....<br>";
  20. $result = mysql_query("SHOW tables");
  21. while ($currow=mysql_fetch_array($result))
  22. {
  23. mysql_query("drop TABLE IF EXISTS $currow[0]");
  24. echo "清空数据表【".$currow[0]."】成功!<br>";
  25. }
  26. echo "<br>恭喜你清理MYSQL成功<br>";
  27. echo "正在执行导入数据库操作<br>";
  28. // 导入数据库的MySQL命令
  29. exec("mysql -u$cfg_dbuser -p$cfg_dbpwd $cfg_dbname < ".$file_name);
  30. echo "<br>导入完成!";
  31. mysql_close();
  32. }
  33. ?>

php 备份和还原数据库的更多相关文章

  1. ASP.NET中使用代码来进行备份和还原数据库

    ASP.NET中使用代码来进行备份和还原数据库  SQL代码: 1 2 3 4 5 -- 备份数据库 backup database db_CSManage to disk='c:\backup.ba ...

  2. MSSQL - 备份和还原数据库

    SQL语句备份和还原数据库:http://blog.csdn.net/liuhelong/article/details/3335687 1.MSSQL - SqlServer:此数据库处于单用户模式 ...

  3. 使用.net备份和还原数据库

    原文:使用.net备份和还原数据库 CSDN网友的提问http://community.csdn.net/Expert/TopicView3.asp?id=4929678C#实现SQLSERVER20 ...

  4. 在ASP.NET中备份和还原数据库

        昨天看了<C#项目实录>中的进销存管理系统,和其他书里讲的案例一样,无非也就是数据库增删查改,但是这个进销存系统中有一个备份和还原数据库的功能,蛮有兴趣的,看了一下代码,原来如此, ...

  5. mysql备份、还原数据库(命令行)

    这里记录下MySQL如何通过命令行备份和还原数据库. 简单的三个步骤 方法很简单,可以分为三个步骤: 1.打开cmd控制台(命令行). 2.输入相应命令完成备份还原操作. 3.关闭cmd控制台. 就和 ...

  6. mysql备份与还原 数据库的常用命令。

    一.备份数据: Mysqldump常用命令: mysqldump -u用户名 -p密码 --databases 数据库1 数据库2 > xxx.sql 常见选项: -u: 用户名 -p: 密码 ...

  7. SQL语句备份和还原数据库

    1,使用SQL最简单备份,还原数据库 1 /* 备份 */ 2 backup database Test to disk='D:/Test.bak' 3 /* 还原 */ 4 restore data ...

  8. 转!mysql备份与还原数据库

    备份数据库:1) mysqldump -uroot -p db_name > 20181018_preprod_bak.sql2) 输入数据库密码 还原数据库:1. 系统命令行:mysqladm ...

  9. Sql server 数据库的备份和还原数据库提示“ 加载的介质已格式化为支持 1 个介质簇,但根据指定的备份设备,应支持 2 个介质簇”

     数据库备份和还原总结 在 "M:\2017-Pro\company\other\databak_2014-10\anquanbaowei_db_201704300200.BAK" ...

随机推荐

  1. Ubuntu系统下为IDEA创建启动图标

    默认情况下,ubuntu将自动安装的软件快捷方式保存在/usr/share/applications目录下,如果我们要创建桌面快捷方式,需要在该目录下创建一个名为“idea.desktop”的文件. ...

  2. 使用Sql按日期条件查询

    --查询当天(1: select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0 --查询当天(2:select * from i ...

  3. 关于如何导入GPUImage

    今天是我第一天做项目哈,由于前几天实在是没有很多空,我姐结婚,事情太多,所以今天才开始真正写项目,希望不要太晚. 今天是晚上开始的,预期的计划就是能够把GPUImage成功导入,然后使用一些其中的东西 ...

  4. Poj 2887-Big String Splay

    题目:http://poj.org/problem?id=2887       Big String Time Limit: 1000MS   Memory Limit: 131072K Total ...

  5. qut训练题解-2016-9-4个人赛

    题目链接:http://acm.hust.edu.cn/vjudge/contest/131124#overview 贴了链接这里就不上原题的描述了. A: B: 分析:这里用到简单的拓扑排序的算法. ...

  6. hdu 4620 搜索

    好苦逼,为啥数组开小了,不会runtime error,还得我WA了几个小时,我泪流满面. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4620 #i ...

  7. zendstudio xdebug 配置

    1. 下载XDebug: http://www.xdebug.org/download.php   通过phpinfo()查看你的php版本,现在相对应的dll文件

  8. Page Cache buffer Cache

    https://www.thomas-krenn.com/en/wiki/Linux_Page_Cache_Basics References Jump up ↑ The Buffer Cache ( ...

  9. Cadence 信号完整性(一)-- 仿真步骤3

    (2)单击“Identify DC Nets”,弹出“Identify DC Nets”窗口,如图2-6 所示: 图 2-6 Identify DC Nets 窗口 (3)在“Net”列表中选择网络如 ...

  10. ELK初学搭建(elasticsearch)

    ELK初学搭建(elasticsearch) elasticsearch logstash kibana ELK初学搭建 elasticsearch 1.环境准备 centos6.8_64 mini ...