【问题标题】:Backup a mysql database and download as a file备份一个mysql数据库并下载为文件
【发布时间】:2010-09-20 11:38:41
【问题描述】:

如何使用 PHP 代码备份 mysql 数据库并将其下载为 .sql 文件

【问题讨论】:

标签: php mysql


【解决方案1】:

一个非常简单的解决方案类似于(第一个示例): http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/using-php-to-backup-mysql-databases.aspx

这自然只会对表进行数据转储。

您可以使用以下代码:

http://snipplr.com/view/173/mysql-dump/

这段代码实际上是获取表的描述(即它的结构),创建所有表并推送数据。和其他任何工具一样。

然后只需将其从字符串保存到文件(例如 file_put_contents() 或类似的东西,取决于您的偏好和需要)

【讨论】:

  • 您当然也可以只输出字符串的内容并强制下载它..
  • 这些使用已弃用 mysql_* 的东西。如果有更新的东西,我真的很想知道。我无法使用 phpMyAdmin。
  • 此代码不包括您创建的除主键外的键(外键、复合键)。
【解决方案2】:
mysqldump -u username -p password database > file

另外,phpMyAdmin 也可以使用导出工具执行此操作。

【讨论】:

  • 比 phpMyAdmin 快得多,但需要 shell 访问。另一方面,如果您只有网络访问权限,PMA 就可以正常工作。
  • 我想使用 PHP 脚本从我的管理面板下载文件
【解决方案3】:

使用phpmyadmin

编辑:

你可以使用shell_exec来执行这个命令

mysqldump -u 用户名 -p 密码数据库> 文件

这将生成一个转储文件,然后将用户重定向到这个生成的文件。

【讨论】:

  • 我想使用 PHP 脚本从我的管理面板下载文件
【解决方案4】:

你有 phpmyadmin 吗?如果是这样,您可以通过单击顶部的“导出”(在选定的表/数据库上)从那里导出它。

【讨论】:

  • 我想使用 PHP 脚本从我的管理面板下载文件
【解决方案5】:

我知道这有点晚了,但希望其他人能找到这个。

//php file - html code:
    require_once 'connect.php'; //holds database variables with connect details
    require_once 'Admin_DatabaseFiles_Backup.php'; //Include the admin logout script

<form action="" method="post" class="form form">
    <!--<input type="hidden" name="backup" value="1" />-->
    <div class="float_left w200">
        <p>
            <label class="title">Backup database</label>
            <span class="left">
              <input type="checkbox" name="db" value="1" checked="checked"/>
            </span>
        </p>
        <p>
            <label class="title">Backup files</label>
            <span class="left">
                <input type="checkbox" name="files" value="1" checked="checked" />
            </span>
        </p>
    </div>
    <p class="float_left">
        <input type="submit" name="submit" value="Backup" class="button" />
    </p>
</form>

//php file Admin_DatabaseFiles_Backup.php:
<?php


if ($_POST['submit']=="Backup"){

    if ($_POST['db'] == "1"){

        $directory = "DatabaseFileBackups/";
        $dateAndTime = "".date('d-m-Y-H-i-s');
        $fileName = "".$dbname.$dateAndTime.".sql";
        $backupFile = "mysqldump --user=$dbuser --password='$dbpass' --host=$dbhost $dbname > ".$directory.$fileName;

        exec($backupFile,$output);

        if($output == ''){ 
            echo = '<br />Failed To Backup Database!';
        }else{
            echo = '<br />Database Backup Was Successful!';
        }
    }

    if ($_POST['files'] == "1"){

            echo 'Seleceted files';

    }
}


?>

【讨论】:

    【解决方案6】:

    如果您有 phpMyAdmin,您可以在“导出”菜单中进行操作。

    如果您要寻找命令行工具,请查看mysqldump

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      • 2011-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多