PHP备份/还原MySQL数据库的代码


Posted in PHP onJanuary 06, 2011

以下是代码:

一、备份数据库并下载到本地【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; 
?>

二、还原数据库【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 相关文章推荐
用Socket发送电子邮件(利用需要验证的SMTP服务器)
Oct 09 PHP
php基础知识:类与对象(5) static
Dec 13 PHP
也谈php网站在线人数统计
Apr 09 PHP
php 传值赋值与引用赋值的区别
Dec 29 PHP
PHP中将数组转成XML格式的实现代码
Aug 08 PHP
php中的curl使用入门教程和常见用法实例
Apr 10 PHP
Yii2基于Ajax自动获取表单数据的方法
Aug 10 PHP
详解PHP防止盗链防止迅雷下载的方法
Apr 26 PHP
实例分析基于PHP微信网页获取用户信息
Nov 24 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
Oct 11 PHP
PHP实现基本留言板功能原理与步骤详解
Mar 26 PHP
swoole锁的机制代码实例讲解
Mar 04 PHP
php循环检测目录是否存在并创建(循环创建目录)
Jan 06 #PHP
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
Jan 06 #PHP
Discuz Uchome ajaxpost小技巧
Jan 04 #PHP
php INI配置文件的解析实现分析
Jan 04 #PHP
PHP strncasecmp字符串比较的小技巧
Jan 04 #PHP
php simplexmlElement操作xml的命名空间实现代码
Jan 04 #PHP
array_multisort实现PHP多维数组排序示例讲解
Jan 04 #PHP
You might like
swfupload 多文件上传实现代码
2008/08/27 PHP
php 图片上添加透明度渐变的效果
2009/06/29 PHP
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
不使用php api函数实现数组的交换排序示例
2014/04/13 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
php动态生成版权所有信息的方法
2015/03/24 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
2015/11/09 PHP
合格的PHP程序员必备技能
2015/11/13 PHP
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
2011/12/31 Javascript
jquery控制左右箭头滚动图片列表的实例
2013/05/20 Javascript
jquery选择器大全 全面详解jquery选择器
2014/03/06 Javascript
jquery单选框radio绑定click事件实现方法
2015/01/14 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
javascript事件冒泡实例分析
2015/05/13 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
Vue.js实现一个SPA登录页面的过程【推荐】
2017/04/29 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
django 自定义用户user模型的三种方法
2014/11/18 Python
Python提取Linux内核源代码的目录结构实现方法
2016/06/24 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
2017/09/26 Python
centos6.8安装python3.7无法import _ssl的解决方法
2018/09/17 Python
利用python循环创建多个文件的方法
2018/10/25 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
2020/02/21 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
2020/04/24 Python
Python内置函数及功能简介汇总
2020/10/13 Python
使用AJAX和Django获取数据的方法实例
2020/10/25 Python
HTML5语音识别标签写法附图
2013/11/18 HTML / CSS
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
如何开发一个JQuery插件
2016/07/28 面试题
英文版区域经理求职信
2013/10/23 职场文书
函授大学生自我鉴定
2014/02/05 职场文书
大二法学专业职业生涯规划范文
2014/02/12 职场文书
服务行业口号
2014/06/11 职场文书
镇党政领导班子民主生活会思想汇报
2014/10/11 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
基于Python的EasyGUI学习实践
2021/05/07 Python