php 备份和恢复数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>系统维护</title>
<style>
body{
    font-size:12px;
}
</style>
</head>
 
<body>
<p>
<a href="updateAdminpwd.html" target="content">修改管理员密码</a> ||
<a href="sys_main.php?action=beifen" target="content">备份数据库</a> ||
<a href="sys_main.php?action=huifu" target="content">恢复数据库</a>
</p>
<?php
    if($_GET["action"] == "huifu") {
        include "sys_huifuData.php";
         
    }else if ($_GET["action"] == "beifen"){
        date_default_timezone_set('PRC');
        include "config.php";
         
        $backcmd = "mysqldump -u$username -p$password yanjing";
        //exec($backcmd,$out,$status);
        //echo "备份成功".$backcmd;
         
        $comm_dir = "D:/Program Files (x86)/EasyPHP-5.3.8.0/mysql/bin/";//mysqldump所在路径:mysql/bin
        $file_dir = "backup/";//备份文件路径
        $file_name = date("Ymd-His").".sql";//备份文件名
         
        $backCMD = $backcmd.'>'.$file_dir.$file_name;
        //echo $backCMD."<br>";
        exec($backCMD,$arr,$i);//执行备份命令
        if($i == 0)
        {
            echo "备份成功";
        }else{
            echo "备份失败";
        }
    }else if ($_GET["action"] == "huifuaction") {
        // 我的数据库信息都存放到config.php文件中,所以加载此文件,如果你的不是存放到该文件中,注释此行即可;
        require_once('config.php');
        if ( isset ( $_POST['sqlFile'] ) )
        {
            $file_name = "backup/".$_POST['sqlFile']; //要导入的SQL文件名
             
            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命令
            //linux下
            //exec("mysql -u$dbuser -p$dbpass $dbname < ".$file_name);
            //win下
            exec("source ".$file_name);
            echo "<br>导入完成!";
            mysql_close();
        }
 
    }
?>
</body>
</html>

  

posted on   防空洞123  阅读(224)  评论(0编辑  收藏  举报

编辑推荐:
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· Linux系列:如何调试 malloc 的底层源码
阅读排行:
· JDK 24 发布,新特性解读!
· C# 中比较实用的关键字,基础高频面试题!
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· Ollama系列05:Ollama API 使用指南
· 为什么AI教师难以实现

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示