Backup bazy danych bez użycia PHPMyAdmin

Współczesne strony internetowe najczęściej składają się z czegoś więcej niż tylko statycznych plików HTML. Blogi, strony oparte o system Joomla! i inne systemy CMS to aplikacje korzystające z PHP oraz bazy danych MySQL do przechowywania tekstów i wszystkich ustawień. Administrator strony, chcąc zrobić kopię zapasową, będzie musiał zgrać zarówno pliki PHP, jak i bazę danych. Ponieważ jest to żmudne zajęcie i większość z nas tego nie lubi, warto ułatwić sobie życie i zautomatyzować cały proces.

Kopię zapasową bazy MySQL tworzy się za pomocą programu mysqldump z poziomu PHP za pomocą instrukcji system().

Należy wykonać następujące instrukcje, aby zrzucić bazę do pliku tekstowego (który w razie problemów można szybko zaimportować do bazy danych):

$sqld = "mysqldump --user=nazwa_uzytkownika --password=hasło --host=nazwa_hosta nazwa_bazy_danych > plik.sql";

system($sqld);

Warto przystosować kod w taki sposób, by nazwa pliku odpowiadała dacie jego utworzenia. Służy do tego funkcja date():

$data = date("Y-m-d"); // zwraca datę, np. 2010-05-28

$sqld = "mysqldump --user=nazwa_uzytkownika --password=hasło --host=nazwa_hosta nazwa_bazy_danych > backup_$data.sql";

system($sqld);

Tak napisany skrypt można wykonywać samodzielnie i następnie pobierać tylko przez FTP zrzut bazy, albo można zaplanować go jako comiesięczne czy cotygodniowe zadanie dla cron’a. Warto wtedy zastosować jakąś metodę przypominania o tym, że czeka na nas gotowy plik, np. przesyłanie linku mailem.

Wypowiedz się

*