Kopia zapasowa bazy danych MySQL: Różnice pomiędzy wersjami
Z ToProste
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
Spis treści
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]