2010-09-20 80 views
10

如何備份mysql數據庫,並通過使用PHP代碼備份MySQL數據庫和下載的文件

+1

我想下載使用PHP腳本文件,從我的管理面板 – mrN 2010-09-20 12:41:22

+0

下面的文章將有助於備份和下載MySQL數據庫作爲SQL文件或GZ format.Also可以備份整個數據庫或特定的表。 [http://faq.pctrickers.com/creating-mysql-database-backup-using-php/](http.pctrickers.com/creating-mysql-database-backup-using-php/) – 2012-10-02 17:34:28

回答

5

一個非常簡單的解決辦法是這樣的(第一個例子): 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()的實例或類似的東西,根據自己的喜好和需求)

+0

您自然也可以輸出字符串的內容並強制下載它。 – AlexejK 2010-09-20 12:34:01

+0

這些使用不推薦使用的'mysql_ *'東西。如果有更新的東西,我很想知道。我無法使用phpMyAdmin。 – starleaf1 2014-12-22 02:44:31

+0

此代碼不包含除主鍵以外創建的鍵(外鍵,複合鍵)。 – 2015-10-20 00:04:47

0

你有phpMyAdmin下載它作爲一個.sql文件?如果是這樣,你可以通過點擊頂部的「導出」(在選定的表格/數據庫)從那裏導出它。

+0

I想從我的管理面板中使用PHP腳本下載文件 – mrN 2010-09-20 11:55:39

3
mysqldump -u username -p password database > file 

或者,phpMyAdmin也可以使用導出工具執行此操作。

+0

比phpMyAdmin快得多,但需要shell訪問。另一方面,如果您只有網絡訪問權限,PMA將工作得很好。 – Piskvor 2010-09-20 11:48:36

+0

我想從我的管理面板中使用PHP腳本下載文件 – mrN 2010-09-20 11:53:14

1

使用phpmyadmin

編輯:

您可以使用shell_exec執行此命令

的mysqldump -u用戶名-p密碼數據庫>文件

這將產生一個轉儲文件,然後將用戶重定向到此生成的文件。

+0

我想從我的管理面板中使用PHP腳本下載文件 – mrN 2010-09-20 11:53:56

-2

如果您有phpMyAdmin,您可以在導出菜單中執行此操作。

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

0

我知道它有點晚,但希望別人會發現這個。

//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'; 

    } 
} 


?>