2010-09-20 12 views
10

Jak utworzyć kopię zapasową bazy danych MySQL i pobrać go jako plik .sql przy użyciu kodów PHPkopii zapasowej bazy danych MySQL i pobierz jako plik

+1

chcę pobrać plik za pomocą skryptu PHP z mojego panelu administratora – mrN

+0

Poniższy artykuł przyczynia się do tworzenia kopii zapasowych i pobieranie bazy mysql jako plik SQL lub GZ format.Also może być pełny backup tabele bazy danych lub szczególne. [http://faq.pctrickers.com/creating-mysql-database-backup-using-php/](http://faq.pctrickers.com/creating-mysql-database-backup-using-php/) –

Odpowiedz

5

Bardzo prostym rozwiązaniem byłoby coś jak (pierwszy przykład): http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/using-php-to-backup-mysql-databases.aspx

Naturalnie będzie to zrobić tylko zrzut danych z tabeli.

Co można zrobić, to użyć tego kodu:

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

Co ten kod nie jest faktycznie dostaje opis tabeli (czyli jego konstrukcję), tworzy wszystkie tabele i popycha danych. prawie jak każde inne narzędzie.

Potem jej tylko kwestia ratowania go z ciągu znaków do pliku (file_put_contents() dla instancji lub coś podobnego, w zależności od preferencji i potrzeb)

+0

Możesz oczywiście po prostu wypisać zawartość ciągu i wymusić jego pobranie. . – AlexejK

+0

Używa tych przestarzałych rzeczy 'mysql_ *'. Jeśli jest coś bardziej aktualnego, naprawdę chciałbym to wiedzieć. Nie mogę używać phpMyAdmin. – starleaf1

+0

Ten kod nie zawiera kluczy (obcych, kompozytowych) utworzonych z wyjątkiem klucza podstawowego. –

0

Czy masz phpMyAdmin? Jeśli tak, możesz wyeksportować go stamtąd, klikając "Eksportuj" u góry (na wybranej tabeli/db).

+0

I chcę pobrać plik za pomocą skryptu PHP, z mojego panelu administracyjnego – mrN

3
mysqldump -u username -p password database > file 

Alternatywnie, phpMyAdmin może to zrobić za pomocą narzędzia Eksportuj.

+0

Znacznie szybciej niż phpMyAdmin, ale wymaga dostępu do powłoki. Z drugiej strony, PMA będzie działać dobrze, jeśli masz tylko dostęp do sieci. – Piskvor

+0

Chcę pobrać plik przy użyciu skryptu PHP, z mojego panelu administracyjnego – mrN

1

Zastosowanie phpmyadmin

Edit:

Można użyć shell_exec aby uruchomić to polecenie

mysqldump -u username -p bazy haseł> plik

Spowoduje to wygenerowanie pliku zrzutu , a następnie przekieruj użytkownika do tego wygenerowanego pliku.

+0

Chcę pobrać plik przy użyciu skryptu PHP, z mojego panelu administracyjnego – mrN

-2

Jeśli masz phpMyAdmina, możesz to zrobić w menu Eksportuj.

Jeśli szukasz narzędzia wiersza polecenia, spójrz na mysqldump.

0

wiem, że trochę późno, ale nadzieję, że ktoś inny będzie znaleźć to.

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

    } 
} 


?> 
Powiązane problemy