Kako uraditi Backup i Restore MySQL baze sa SSH/Telnet

Stemis

Prinudni upravnik
Urednik
Učlanjen(a)
12.02.2009.
Poruke
29.892
Broj reagovanja
15.834
Horoskop
Ovan
Kako uraditi Backup i Restore MySQL Database uz pomoć SSH/Telnet

Ako Vaša web prezentacija koristi MySQL bazu podataka, vrlo je važno da se redovno pravite sigurnosne kopije vaših podataka kako bi se zaštitili od gubitka podataka. Ovaj tutorial će vam pokazati dva jednostavna načina za backup i restore Vaše MySQL baze podataka. Možete koristiti ovaj proces i za transfer svoje baze i na nov web server.

Backup korišćenjem mysqldumpa

Ako imate telnet ili shell pristup vašem web serveru, možete da uradite backup vaše baze koristeći mysqldump naredbu. Ova naredba spaja na MySQL server i stvara SQL dump datoteke. Ovo je pravilna sintaksa (naredba):
Kod:
$ mysqldump --opt -u [uname] -p[pass] [dbname] > [backupfile.sql]

Gde je:
* [uname] ime korisnika beze
* [pass] password za vašu bazu
* [dbname] ima baze
* [backupfile.sql] ime fajla kopije baze, tj, backupa
* [--opt] mysqldump opcije (koje u ovom primeru nisu bitne)

Na primer, za backup baze podataka pod nazivom 'Tutoriali' sa korisničkim imenom 'root' i bez lozinke u datoteku tut_backup.sql, trebali ispuniti ovu naredbu:
Kod:
$ mysqldump -u root -p Tutorials > tut_backup.sql

Ovom naredbom će se napraviti sigurnosna kopija 'Tutoriali' baze podataka u datoteku koja se zove tut_backup.sql i sadržaće sve potrebne SQL statements da biste ponovo stvorili bazu.

Sa mysqldump naredbom možete navesti određene tabele Vaše baze podataka za koje želite da uradite backup. Na primer, za sigurnosno kopiranje samo php_tutorials i asp_tutorials tabele iz 'Tutoriali' treba napisati code koji se nalazi ispod. Svako ime tabele mora biti odvojeno baš kao što je u primeru:
Kod:
$ mysqldump -u root -p Tutorials php_tutorials asp_tutorials > tut_backup.sql

Ponekad je potrebno napraviti backup više baza podataka odjednom. U tom slučaju možete se koristiti --database opcijom. Svaka ime baze podataka mora biti odvojeno baš kao u ovom primeru:
Kod:
$ mysqldump -u root -p --databases Tutorials Articles Comments > content_backup.sql

Ako želite napraviti sigurnosnu kopiju svih podataka na serveru istovremeno koristite --all-databases opciju.
Kod:
$ mysqldump -u root -p --all-databases > alldb_backup.sql

Backup vaše MySQL baze sa kompresijom

Ako je Vaša MySQL baza podataka je vrlo velika, možda biste je trebali kompresovati. Dovoljno je koristiti mysql backup naredbu ispod i tada ćete dobiti izlaz kao gzip datoteku.
Kod:
$ mysqldump -u [uname] -p[pass] [dbname] | gzip -9 > [backupfile.sql.gz]

Ukoliko želite da se ektraktuje Gz datoteka koristite naredbu ispod:
Kod:
$ gunzip [backupfile.sql.gz]

Restore vaše MySQL baze

Da biste ponovo stvorili bazu Tutoriali trebate uraditi dve stvari:
* Kreirajte bazu podataka na novom serveru
* Učitajte datoteku koristeći mysql naredbu:
Kod:
$ mysql -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]

Ovako možete vratiti vaš backup baze Tutoriali u novu bazu podataka.
Kod:
$ mysql -u root -p Tutorials < tut_backup.sql

Da biste vratili kompresovan backup datoteke koristite sledeću naredbu:
Kod:
gunzip < [backupfile.sql.gz] | mysql -u [uname] -p[pass] [dbname]

Ako je potrebno vraćanje baze podataka koja već postoji, morate da koristitite mysqlimport naredbe. Sintaksa za mysqlimport je:
Kod:
mysqlimport -u [uname] -p[pass] [dbname] [backupfile.sql]
 
Vrh Dno