Kopia zapasowa bazy danych MySQL

Z ToProste
Skocz do: nawigacji, wyszukiwania

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().