共计 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 问一下细节
正文完