Kopia zapasowa bazy danych MySQL: Różnice pomiędzy wersjami

Z ToProste
Skocz do: nawigacji, wyszukiwania
m (Utworzył nową stronę „== 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 ...”)
 
m
 
(Nie pokazano 6 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 1: Linia 1:
 
== mysqldump ==
 
== 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''' 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 ===
 +
<syntaxhighlight lang="php">
 +
<?php
 +
$time = time();
 +
$dbhost = "localhost";
 +
$dbuser = "uzytkownik";
 +
$dbpass = "haslo";
 +
$dbname = "nazwa_bazy";
 +
 +
$backupFolder = 'backupDB/';
 +
$backupTime = date("YmdHis", $time);
 +
 +
if (!is_dir($backupFolder)) mkdir($backupFolder, 0777, true);
 +
chmod($backupFolder, 0777);
 +
 +
$backupFile = $backupFolder.'bakDB_'.$dbname.'_'.$backupTime;
 +
 +
system("/usr/local/mysql/bin/mysqldump -u$dbuser -p$dbpass $dbname > $backupFile".".sql");
 +
?>
 +
</syntaxhighlight>
 +
 +
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()]], w wierszu '''disable_functions'''.
 +
 +
<!--Jeśli nie mamy dostępu do funkcji system(), pozostaje jeszcze inne rozwiązanie.-->
 +
 +
Źródła: [https://dev.mysql.com/doc/refman/5.1/en/mysqldump.html] <!-- [http://www.tidnab.nowaruda.net/linux/360/prosty-backup-mysql-z-pomoca-php-lub-basha.html]-->
 +
 +
 +
[[Kategoria:Uzupełnić]]

Aktualna wersja na dzień 19:34, 25 lut 2014

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

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(), w wierszu disable_functions.


Źródła: [1]