php备份mysql数据库

<?php
/*程序功能:mysql数据库备份功能*/
ini_set(‘max_execution_time‘,‘0‘);
ini_set(‘memory_limit‘,‘1024M‘);//加上这两行,可以备份大数据,昨晚测了一下公司的一个600M的表,很快就可以备份成功
$code_type = ‘gbk‘;
header("Content-type:text/html;charset=$code_type");
header("Content-disposition:   filename=backup.sql");//所保存的文件名
header("Content-type:   application/octetstream");
header("Pragma:   no-cache");
header("Expires:   0");
$conn   =   mysql_connect("localhost","root","root");
$db   =   mysql_select_db($dbname,$conn);
mysql_query("set names $code_type");
$dbname="test";//数据库名
$flag  = ‘1‘;//1:全部备份,2:只备份表结构,3:只备份数据
echo back_dataBase($dbname,$conn,$flag);//备份数据库

//开始备份
function back_database($dbname,$conn,$flag=‘1‘){
$crlf="\r\n";
$str = ‘‘;
$now = date(‘Y年m月d日H点i分s秒‘,time());
$str .=   "$crlf--$crlf-- 数据库: `$dbname`$crlf--$crlf-- 导出日期: `$now`$crlf--$crlf";
$str .=   "$crlf--$crlf-- 作者: ****$crlf--$crlf-- QQ: 1019822077$crlf--$crlf";
$str .=   "-- blog: http://hi.baidu.com/woaidelphi/blog$crlf--$crlf";
$str .=   "SET SQL_MODE=\"NO_AUTO_VALUE_ON_ZERO\";$crlf";
$tables       =   mysql_list_tables($dbname,$conn);
$num_tables   =   mysql_numrows($tables);//表的总数
$i   =   0;
while($i<$num_tables){//循环所有的表
$table =   mysql_tablename($tables,$i);
//备份表结构
if($flag==‘1‘ or $flag==‘2‘){
$query =   mysql_query("SHOW CREATE TABLE $table");
$row   =   mysql_fetch_row($query);
$str .=  "-- --------------------------------------------------------$crlf$crlf";
$str .=  "--$crlf-- 表的结构 `$table` $crlf--$crlf";
$str .=  $row[1].";$crlf--$crlf";
}
//备份表内容
if($flag==‘1‘ or $flag==‘3‘){
$str .= "--$crlf-- 导出表中的数据 `$table` $crlf--$crlf";
$str .=  get_table_content($dbname,$table);
$str .= "$crlf$crlf";
}
$i++;
}
return $str;
}
//得到表中的记录sql
function   get_table_content($dbname,$table){
$crlf            =   "\r\n";
$schema_create   =   "";
$temp            =   "";
$result          =   mysql_db_query($dbname,"SELECT   *   FROM   $table");
$i               =   0;
while($row   =   mysql_fetch_row($result)){
$schema_insert   =   "INSERT   INTO   $table   VALUES   (";
for($j=0;   $j<mysql_num_fields($result);$j++){
if(!isset($row[$j]))
$schema_insert   .=   "   NULL,";
elseif($row[$j]   !=   "")
$schema_insert   .=   "   ‘".addslashes($row[$j])."‘,";
else
$schema_insert   .=   "   ‘‘,";
}
$schema_insert   =   ereg_replace(",$",   "",   $schema_insert);
$schema_insert   .=   ");$crlf";
$temp   =   $temp.$schema_insert   ;
$i++;
}
return   $temp;
}
时间: 2024-10-18 22:41:24

php备份mysql数据库的相关文章

备份MySQL数据库的命令

这篇文章主要介绍了mysql数据库备份常用语句,包括数据库压缩备份.备份多个MySQL数据库.备份多个MySQL数据库.将数据库转移到新服务器等语句 代码如下: mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql 备份MySQL数据库为带删除表的格式 备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库. 代码如下: mysqldump -–add-drop-tab

C#使用MysqlBackup.Net 备份MySQL数据库

首先 声明这篇博文没有什么技术水平  希望各位大神口下留情 好的  咱们进入主题 开场介绍一下这个MysqlBackup.Net dll 是国外开源的作品  官方网站 https://mysqlbackupnet.codeplex.com/ 我这里提供目前官方最新版本 2.0.9.2   解压缩后里面会有两个文件夹   binaries里面是类库 里面分各个.net版本    source code里面是源代码 有兴趣的同学可自行下载研究其代码 点击下载MysqlBackup.Net 因为我项目

一个自动备份mysql数据库的bat文件内容

自动备份mysql数据库,并已当前的日期时间为目录 copy过去, xcopy将近15年没有用dos命令,还是这么亲切 另 本方法是备份数据库文件,不是dump导出,然后再计划任务中使用,我用的是wamp,其他的环境类似的改改即可 ====dbback.bat============ NET STOP wampapacheNET STOP wampmysqldset /a t1=(1%time:~0,2%-100)*1if %t1% LSS 10 set t1=0%t1%set ymd_hms=

Shell脚本-----自动备份Mysql数据库

脚本的整体思路 1.定义需要的变量 2.利用for循环备份需要备份的库,并以库名-当天日期.sql命名,并记录相关日志 3.建立备份当天的日期的目录,向备份的Sql文件移动到该目录 4.压缩打包该目录,以节省空间,打包成功后删除该目录 5.备份目录只备份七天的数据库,第八天删除第一天的备份,目录只会存在连续七天的备份文件 6.查找备份目录下的.log日志文件,超过七天的删除 #!/bin/bash mysql_bin=/usr/local/tdoa/mysql/bin/mysqldump use

[转]一个备份MySQL数据库的简单Shell脚本

本文翻译自 iSystemAdmin 的 <A Simple Shell Script to Backup MySQL Database> Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行.我们也可以逐一敲入命令手动执行.如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反复运行这些命令了. 我首先要在本文带给你的是完整脚本.后面会对该脚本做说明.我假定你已经知道shell scripting. mysqldump和cronta

快照方式备份MySQL数据库及举例

快照方式备份MySQL数据库及举例 作者: 红豆殺 日期: 2011 年 03 月 17 日发表评论7条评论查看评论 一.创建逻辑卷 依照如下连接的文档创建一个逻辑卷 http://www.178-go.com/tags/lvm 要求:物理卷20G;卷组名为vg0;逻辑卷2G,逻辑卷名为mydata 创建逻辑卷挂载点,并挂载之 # mkdir /mydata # mount /dev/vgo/mydata /mydata 二.安装MySQL数据库 如果机器已装有mysql,则此步可省略 只需修改

批处理命令 BAT备份MySQL数据库

原文:批处理命令 BAT备份MySQL数据库 工作环境 Windows Server 2003 ,MySQL安装目录 D:\MySQL , WinRAR 安装目录 C:\Program Files\WinRAR\WinRAR.exe 备份数据存储的路径为 E:\数据备份,好了下面开始写DOS批处理命令了.代码如下: set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%" md "E:\数据备份\%ymd%" "D:\MySQL

Linux下定时备份MySQL数据库的Shell脚本

Linux下定时备份MySQL数据库的Shell脚本 对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间和精力,还灰常不专业的说.于是,有了下面这段脚本的出现.参考了网上的很多教程,外加自己的测试,以下脚本经测试可用.#!/bin/bash#Shell Command For Backup MySQL Database Everyday Automatically By Crontab#Author :

使用XtraBackup 备份MySQL数据库

本次测试使用XtraBackup备份MySQL数据库 版本:XtraBackup2.4.5+MySQL5.7.16 下载地址:https://www.percona.com/downloads/XtraBackup/ 1.安装XtraBackup 本次为了方便,使用解压版本进行安装,直接解压就可以用了. 使用过程中可能会遇到缺少perl依赖包的问题,我的方法是直接操作把镜像包里的perl都安装了,yum install -y perl* 2.简介 XtraBackup主要包括两个备份工具xtra

linux下远程备份mysql数据库

本次环境主要是远程备份mysql数据库的一种常见方法,对于其他知识不做太多讲解. 环境需求: 两台linux:一台mysql数据库服务器,另一台当作客户端用来做备份. 环境目标: 实现mysql数据库的远程备份 例子: (A为服务端ip为192.168.1.1    B为客户端ip为192.168.1.2) 1.首先你得在A上建立一个数据库(建立数据库名称我以 xianyu 为例) create database xianyu;   (建立数据库xianyu) 2.在A上建立一个数据库用户用来做