Maj
22
2013
22
2013
Backup bazy danych MySQL + PHP (dump)
Wrzucam przydatny skrypt, a dokładniej klasę wraz z jej użyciem do tworzenia kopii zapasowej bazy danych MySQL. Jest to zmodyfikowana wersja MySQLDumper. Dopisałem funkcjonalność wyboru tabel, które mają zostać zrzucone oraz pakowanie dumpa do formatu
gZip
.
Do pobrania
Przykład użycia
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 |
require('mysqldumper.php'); // start funkcja pakująca function gzcompressfile($source,$level=false){ $dest=$source.'.gz'; $mode='wb'.$level; $error=false; if($fp_out=gzopen($dest,$mode)){ if($fp_in=fopen($source,'rb')){ while(!feof($fp_in)) gzwrite($fp_out,fread($fp_in,1024*512)); fclose($fp_in); } else $error=true; gzclose($fp_out); } else $error=true; if($error) return false; else return $dest; } // koniec funkcja pakująca // utworzenie obiektu $dumper = new Mysqldumper(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE_NAME); // dodanie polecenia usunięcia tabel przed ich utworzeniem, przydatne przy imporcie pliku $dumper->setDroptables(true); // wybranie tabel, które mają zostać zapisane $dumper->tablesToDump = array( 'tabela_1', 'tabela_2', 'tabela_3', 'tabela_4', 'tabela_5', 'tabela_6' ); // wykonanie zrzutu bazy $dumpstring = $dumper->createDump(); // start zapis do pliku $nazwa_pliku = 'baza_dump_' . date('Y.m.d_H.i.s') . '.sql'; $plik = $dumpstring; if ( !$handle = fopen($filename, 'w+') ) { echo "Nie można utworzyć pliku ($filename)"; die; } if ( fwrite($handle, $somecontent) === FALSE ) { echo "Nie można zapisać do pliku ($filename)"; die; } fclose($handle); // koniec zapis do pliku // kompresja pliku do ZIP gzcompressfile($filename, 9); // usunięcie tymczasowego pliku .sql z serwera @unlink($filename); |
Tagi: mysql
Podobne tematy
1 komentarz + Dodaj komentarz
Dodaj komentarz
O mnie
Najnowsze wpisy
- Drzewo kategorii – budowa struktury od dołu do góry
- PHPExcel – export + import pliku XLS
- WordPress + Polylang – Tworzenie klasy CSS z ID strony/wpisu w wybranym języku
- Mailing – Poprawna konstrukcja szablonu maila HTML/CSS i prawidłowy wygląd w programie pocztowym
- Szukasz programisty PHP dla e-commerce?
if ( !$handle = fopen($filename, ‚w+’) ) {
echo „Nie można utworzyć pliku ($filename)”;
die;
}
Zmienna filename nie została wczesniej podana, powinno być nazwa_pliku, tak mi się wydaje