数据库备份的两种方法
数据库备份是必要的一般都是使用mysqldump进行备份,我这边写了两种备份方法可以参考一下。
第一种:使用mysqldump结合exec函数进行数据库备份操作。
代码如下:
/*** Subject: php-mysql 实现数据库备份.* User: luokakale* Date: 2018/11/9* Time: 13:31*/header('Content-Type:text/html;charset=utf8'); ini_set("max_execution_time", "0");//代码运行时间不限制 防止备份失败 ini_set('memory_limit', '128M');//设置内存 根据需求可以修改 date_default_timezone_set("PRC"); //创建需要保存sql文件的文件夹 $path = 'D:\SQL\databse_backup'; //定义数据库配置 $user = ''; //数据库账户 $pwd = ''; //数据库密码 $dbname = ''; //数据库名称//备份数据库命令地址文件 $sqladdress = 'D:\phpStudy\MySQL\bin\mysqldump.exe';//备份指定地址 $time = time(); $path = 'D:\SQL\databse_backup'.'\\'.date("Ymd",$time); if(!file_exists($path)) {mkdir($path,0777,true); }//备份的数据库文件名 $sqlFile = $dbname."_%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%.sql"; //判断是否存在密码 $password = $pwd== ''?'':' -p'.$pwd; //拼接备份命令 $order = $sqladdress.' --opt -u'.$user.$password.' '.$dbname.' >'.$path.'\\'.$sqlFile; //执行命令 exec($order);
我使用的是集成的phpstudy里面的mysql下面的mysqldump.exe来备份,备份的数据库名字写法是 数据库名字+年月日时. 上面代码中我对数据库密码进行了判断,我这边有些数据库是不需要密码的。最后使用exec执行命令。
第二种:使用php+mysql+header函数进行数据库备份和下载操作。
代码如下:
header('Content-Type:text/html;charset=utf8'); ini_set("max_execution_time", "0");//代码运行时间不限制 防止备份失败 ini_set('memory_limit', '1024M');//设置内存 根据需求可以修改 date_default_timezone_set("PRC"); header("Content-Type:text/html;charset=utf-8"); $host=""; $user="";//账户 $password="";//密码 $dbname="";//数据库名称 $con = mysqli_connect("$host","$user","$password","$dbname"); mysqli_select_db($con,$dbname); $mysql= "set charset utf8;\r\n";#for mysql>=5.0 mysqli_query($con,"SET NAMES 'UTF8'"); $q1=mysqli_query($con,"show tables"); while($t=mysqli_fetch_array($q1)){$table=$t[0];$q2=mysqli_query($con,"show create table `$table`");$sql=mysqli_fetch_array($q2);$mysql.=$sql['Create Table'].";\r\n\r\n";#DDL$q3=mysqli_query($con,"select * from `$table`");while($data=mysqli_fetch_assoc($q3)){$keys=array_keys($data);$keys=array_map('addslashes',$keys);$keys=join('`,`',$keys);$keys="`".$keys."`";$vals=array_values($data);$vals=array_map('addslashes',$vals);$vals=join("','",$vals);$vals="'".$vals."'";$mysql.="insert into `$table`($keys) values($vals);\r\n";unset($data);}$mysql.="\r\n";unset($t); } mysqli_close($con); $filename=date('Ymj').".sql"; //文件名为当天的日期 $time = time(); $path = 'D:\SQL\databse_backup'.'\\'.date("Ymd",$time).'\\'; // 检查目录是否存在 if(!is_dir($path)){// 新建目录mkdir($path, 0777, true); } $file_name = $path.$filename; $fp = fopen($file_name,'w'); fputs($fp,$mysql); fclose($fp); $fp=fopen($file_name,"r"); $file_size=filesize($file_name); header("Content-type: application/octet-stream"); header("Accept-Ranges: bytes"); header("Accept-Length: ".$file_size); header("Content-Disposition: attachment; filename=".$filename); //这里一定要使用echo 进行输出,否则下载的文家是空白的 echo fread($fp,$file_size); fclose($fp); exit;
个人建议用第一种,第二种太消耗内存了。
第一种可以做成定时备份,windows下可以用定时任务。
本文属原创内容,为了尊重他人劳动,转载请注明本文地址:
https://www.cnblogs.com/luokakale/p/9935772.html
转载于:https://www.cnblogs.com/yehuisir/p/11191449.html
数据库备份的两种方法相关推荐
- 服务器异地备份共享文件夹方法,mssql数据库异地备份的两种方法
mssql数据库异地备份的两种方法 /*两种方法的前提:1.本地服务器的sqlserver agent服务保证处于启动状态 2.远程计算机(计算机管理里)建立一个普通权限用户,并为其加上密码(例如用户 ...
- oracle如何对数据库进行备份,对Oracle数据库进行备份的两种方法详解
首页 > 演讲稿 > 自我介绍演讲稿 > 对Oracle数据库进行备份的两种方法详解 对Oracle数据库进行备份的两种方法详解 时间:2019-05-05 来源:自我介绍演讲稿 ...
- SQL SERVER 2000 数据库备份和SQL Server数据库备份有两种方式,
SQL SERVER 2000 数据库备份与还原时间:2006-08-30 10:23:23 来源:CSDN 作者:佚名备份数据库,例如: BACKUP DATABASE Northwind ...
- 数据库备份的四种方法 软件功能需求分析
数据库备份的四种方法: l 全备份:创建备份完成时数据库内存在的数据的副本. l 差异备份:只记录自上次数据库备份后发生更改的数据.差异数据库备份比数据库备份小,而且备份速度快,因此可以更经常地备份, ...
- 浅谈MySQL数据库备份的几种方法
mysql常见的备份方式有:mysqldump.mysqlhotcopy.BACKUP TABLE .SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据 ...
- 服务器里文件表格如何自动备份,Excel电子表格自动备份的两种方法
对于数据量大.数据重要性高的EXCEL文件,如果出现任何意外导致数据遭受损坏,那么,将是一件严重的问题. 平时我们在操作EXCEL时,应该养成良好的习惯,即让EXCEL自动备份,以防不测. 以下是两种 ...
- 数据库备份的几种方法
项目的开发过程中数据库的备份是非常重要的,因为数据库很容易被人不小心删除掉,会造成不可估计的损失,所以一定要进行数据库的备份. 方法一:自己手动备份(用命令行进行备份) 备份数据库命令: mysqld ...
- python将数据存入mysql数据库中_python3 两种方法将数据存入mysql数据库
方法一:(数据量小的时候推荐使用这种) 第一步:pip install mysqlclient 这里我没有报错 也许你可能会报错Read timed out 此时不要慌,这是因为你的网络问题,你使 ...
- MongoDB备份的两种方法
使用mongodb命令:mongodump 将数据文件导出到文件 使用文件系统快照,这需要开启日志功能,还需要系统支持块级设备备份:速度很快,但日志产生大
最新文章
- 管理者如何管理好有一个团队?
- IDA Pro 修改默认名称
- Eclipse-JAVA版本
- logback之使用demo
- qoq是什么意思的缩写_有意思,“TTFN”居然是“再见”的缩写词,具体是指什么呢?...
- 单片机C语言程序设计实训100例:基于AVR+proteus仿真pdf
- BitComet(比特彗星) BT磁力链下载推荐
- Android Studio的反编译工具使用。
- Scrum:官僚者们的游戏
- python井字棋_python之井字棋游戏
- 【2G模组Air202开发】使用LuatTools下载Luat底层Lod及编写第一个程序:流水灯
- BZOJ 3162 独钓寒江雪
- Android 打开应用商店评分
- C++Primer 第10章lambda表达式
- PDF格式分析(六十六) Text 文字——简单字体
- 未来电竞旗舰:iQOO 8系列售价3799元起
- 智云通CRM:采购决策有哪些关键节点?
- 【科研】博士学位论文评阅书
- Linux网卡限速下载,端口限速下载脚本,网卡流量监控脚本
- 出彩的PPT封面如何设置?这些例子建议收藏
热门文章
- origin两个图层图例合并_科学网-Origin双坐标画法以及图例添加之方法一(以origin8.0为例)-蔡延江的博文...
- sql注入 union联合查询注入(超详细)
- OpenCV(C++)图像处理基础04:图像混合(线性混合操作)
- 2019 Q4中国公有云IaaS市场份额:阿里云、腾讯云、华为云三足鼎立
- Electron教程 (一)Electron介绍
- html页面设计工具,8个新设计工具和网页插件分享
- matlab 得到三维的数组例如100x300x200
- 解释地震等级与地震烈度的含义(收藏)
- jsp+springboot使命必达跑腿接单网站系统 ssm
- 【魔豆观察】 金山渡过了生死线