Ostatnio zmodyfikowano 17:34, 24 lut 2014

Kopia zapasowa bazy danych MySQL

mysqldump

mysqldump jest to program używany do robienia kopii zapasowej bazy MySQL. Zrzut bazy może być zapisany do pliku SQL, CSV, XML, itp. Kopia bazy w formacie SQL zawiera takie polecenia jak: DROP table, CREATE table i INSERT into źródłowej bazy danych, dzięki czemu jej wykonanie w docelowej bazie powoduje przywrócenie danych z kopii.

mysqldump -u[uzytkownik] -p[haslo] [nazwa_bazy] > plik.sql

kopia wybranej bazy

mysqldump -uuzytkownik -phaslo nazwa_bazy > kopia_bazy_nazwa_bazy.sql

kopia wybranej tabeli bazy

mysqldump -uuzytkownik -phaslo nazwa_bazy nazwa_tabeli > kopia_nazwa_tabeli_nazwa_bazy.sql

kopia kilku baz danych

mysqldump -uuzytkownik -phaslo --databases baza1 baza2 baza3 > kopia_kilku_baz.sql

kopia wszystkich baz danych

mysqldump -uuzytkownik -phaslo --all-databases > kopia_wszystkich_baz.sql

Skrypt PHP backup MySQL

 
<?php
$dbhost	=	"localhost";
$dbuser	=	"uzytkownik";
$dbpass	=	"haslo";
$dbname =	"nazwa_bazy";
 
$backupFolder = 'backupDB/';
$backupTime = date("YmdHis");
 
if (!is_dir($backupFolder)) mkdir($backupFolder, 0777, true);
chmod($backupFolder, 0777);
 
$backupFile = $backupFolder.'bakDB_'.$dbname.'_'.$backupTime.'.sql';
 
system("/usr/local/mysql/bin/mysqldump -u$dbuser -p$dbpass $dbname > $backupFile");
?>

Aby skrypt działał, niezbędny jest dostęp do funkcji system(), która ze względów bezpieczeństwa może być zablokowana. Listę zablokowanych funkcji hostingu można sprawdzić używając phpinfo().