php 备份和还原数据库
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】
- <?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;
- ?>
<?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】
- <form id="form1" name="form1" method="post" action="">
- 【数据库SQL文件】:<input id="sqlFile" name="sqlFile" type="file" />
- <input id="submit" name="submit" type="submit" value="还原" />
- </form>
- <?php
- // 我的数据库信息都存放到config.php文件中,所以加载此文件,如果你的不是存放到该文件中,注释此行即可;
- require_once((dirname(__FILE__).'/../../include/config.php'));
- if ( isset ( $_POST['sqlFile'] ) )
- {
- $file_name = $_POST['sqlFile']; //要导入的SQL文件名
- $dbhost = $cfg_dbhost; //数据库主机名
- $dbuser = $cfg_dbuser; //数据库用户名
- $dbpass = $cfg_dbpwd; //数据库密码
- $dbname = $cfg_dbname; //数据库名
- set_time_limit(0); //设置超时时间为0,表示一直执行。当php在safe mode模式下无效,此时可能会导致导入超时,此时需要分段导入
- $fp = @fopen($file_name, "r") or die("不能打开SQL文件 $file_name");//打开文件
- mysql_connect($dbhost, $dbuser, $dbpass) or die("不能连接数据库 $dbhost");//连接数据库
- mysql_select_db($dbname) or die ("不能打开数据库 $dbname");//打开数据库
- echo "<p>正在清空数据库,请稍等....<br>";
- $result = mysql_query("SHOW tables");
- while ($currow=mysql_fetch_array($result))
- {
- mysql_query("drop TABLE IF EXISTS $currow[0]");
- echo "清空数据表【".$currow[0]."】成功!<br>";
- }
- echo "<br>恭喜你清理MYSQL成功<br>";
- echo "正在执行导入数据库操作<br>";
- // 导入数据库的MySQL命令
- exec("mysql -u$cfg_dbuser -p$cfg_dbpwd $cfg_dbname < ".$file_name);
- echo "<br>导入完成!";
- mysql_close();
- }
- ?>
php 备份和还原数据库的更多相关文章
- ASP.NET中使用代码来进行备份和还原数据库
ASP.NET中使用代码来进行备份和还原数据库 SQL代码: 1 2 3 4 5 -- 备份数据库 backup database db_CSManage to disk='c:\backup.ba ...
- MSSQL - 备份和还原数据库
SQL语句备份和还原数据库:http://blog.csdn.net/liuhelong/article/details/3335687 1.MSSQL - SqlServer:此数据库处于单用户模式 ...
- 使用.net备份和还原数据库
原文:使用.net备份和还原数据库 CSDN网友的提问http://community.csdn.net/Expert/TopicView3.asp?id=4929678C#实现SQLSERVER20 ...
- 在ASP.NET中备份和还原数据库
昨天看了<C#项目实录>中的进销存管理系统,和其他书里讲的案例一样,无非也就是数据库增删查改,但是这个进销存系统中有一个备份和还原数据库的功能,蛮有兴趣的,看了一下代码,原来如此, ...
- mysql备份、还原数据库(命令行)
这里记录下MySQL如何通过命令行备份和还原数据库. 简单的三个步骤 方法很简单,可以分为三个步骤: 1.打开cmd控制台(命令行). 2.输入相应命令完成备份还原操作. 3.关闭cmd控制台. 就和 ...
- mysql备份与还原 数据库的常用命令。
一.备份数据: Mysqldump常用命令: mysqldump -u用户名 -p密码 --databases 数据库1 数据库2 > xxx.sql 常见选项: -u: 用户名 -p: 密码 ...
- SQL语句备份和还原数据库
1,使用SQL最简单备份,还原数据库 1 /* 备份 */ 2 backup database Test to disk='D:/Test.bak' 3 /* 还原 */ 4 restore data ...
- 转!mysql备份与还原数据库
备份数据库:1) mysqldump -uroot -p db_name > 20181018_preprod_bak.sql2) 输入数据库密码 还原数据库:1. 系统命令行:mysqladm ...
- Sql server 数据库的备份和还原数据库提示“ 加载的介质已格式化为支持 1 个介质簇,但根据指定的备份设备,应支持 2 个介质簇”
数据库备份和还原总结 在 "M:\2017-Pro\company\other\databak_2014-10\anquanbaowei_db_201704300200.BAK" ...
随机推荐
- Ubuntu系统下为IDEA创建启动图标
默认情况下,ubuntu将自动安装的软件快捷方式保存在/usr/share/applications目录下,如果我们要创建桌面快捷方式,需要在该目录下创建一个名为“idea.desktop”的文件. ...
- 使用Sql按日期条件查询
--查询当天(1: select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0 --查询当天(2:select * from i ...
- 关于如何导入GPUImage
今天是我第一天做项目哈,由于前几天实在是没有很多空,我姐结婚,事情太多,所以今天才开始真正写项目,希望不要太晚. 今天是晚上开始的,预期的计划就是能够把GPUImage成功导入,然后使用一些其中的东西 ...
- Poj 2887-Big String Splay
题目:http://poj.org/problem?id=2887 Big String Time Limit: 1000MS Memory Limit: 131072K Total ...
- qut训练题解-2016-9-4个人赛
题目链接:http://acm.hust.edu.cn/vjudge/contest/131124#overview 贴了链接这里就不上原题的描述了. A: B: 分析:这里用到简单的拓扑排序的算法. ...
- hdu 4620 搜索
好苦逼,为啥数组开小了,不会runtime error,还得我WA了几个小时,我泪流满面. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4620 #i ...
- zendstudio xdebug 配置
1. 下载XDebug: http://www.xdebug.org/download.php 通过phpinfo()查看你的php版本,现在相对应的dll文件
- Page Cache buffer Cache
https://www.thomas-krenn.com/en/wiki/Linux_Page_Cache_Basics References Jump up ↑ The Buffer Cache ( ...
- Cadence 信号完整性(一)-- 仿真步骤3
(2)单击“Identify DC Nets”,弹出“Identify DC Nets”窗口,如图2-6 所示: 图 2-6 Identify DC Nets 窗口 (3)在“Net”列表中选择网络如 ...
- ELK初学搭建(elasticsearch)
ELK初学搭建(elasticsearch) elasticsearch logstash kibana ELK初学搭建 elasticsearch 1.环境准备 centos6.8_64 mini ...