数据库中有哪两种数据库备份

60次阅读
没有评论

共计 2856 个字符,预计需要花费 8 分钟才能阅读完成。

自动写代码机器人,免费开通

丸趣 TV 小编给大家分享一下数据库中有哪两种数据库备份,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

数据库备份的两种方法是:1、使用 mysqldump 结合 exec 函数进行数据库备份;2、使用【php+mysql+header】函数进行数据库备份。

数据库备份是必要的一般都是使用 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 下可以用定时任务。

以上是“数据库中有哪两种数据库备份”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-16发表,共计2856字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)