Ukazi MySQL za varnostno kopiranje in obnovo za upravljanje baz podatkov
Ta članek vam prikazuje nekaj praktičnih primerov, kako izvajati različne operacije varnostnega kopiranja baz podatkov MySQL z uporabo ukaza mysqldump, videli pa bomo tudi, kako jih obnoviti s pomočjo ukazov mysql in mysqlimport v Linuxu.
mysqldump je odjemalski program ukazne vrstice, uporablja se za odlaganje lokalne ali oddaljene baze podatkov MySQL ali zbiranje baz podatkov za varnostno kopiranje v eno ravno datoteko.
Predvidevamo, da imate MySQL že nameščen v sistemu Linux s skrbniškimi pravicami, in predvidevamo, da že imate majhno količino znanja o MySQL. Če MySQL ni nameščen ali niste izpostavljeni MySQL, preberite spodnje članke.
- Namestite strežnik MySQL na RHEL/CentOS 6-5, Fedora 17-12
- 20 ukazov MySQL za upravljanje baz podatkov
Kako varnostno kopirati bazo podatkov MySQL?
Če želite narediti varnostno kopijo zbirke podatkov ali baz podatkov MySQL, mora baza podatkov obstajati v strežniku baz podatkov in imeti morate dostop do nje. Oblika ukaza bi bila.
# mysqldump -u [username] –p[password] [database_name] > [dump_file.sql]
Parametri omenjenega ukaza so naslednji.
- [uporabniško ime]: veljavno uporabniško ime MySQL.
- [geslo]: veljavno geslo MySQL za uporabnika.
- [ime_baze]: Veljavno ime zbirke podatkov, ki jo želite varnostno kopirati.
- [dump_file.sql]: Ime varnostne kopije datoteke, ki jo želite ustvariti.
Če želite narediti varnostno kopijo posamezne baze podatkov, uporabite ukaz, kot sledi. Ukaz bo odvrgel strukturo baze podatkov [rsyslog] s podatki v eno datoteko izpisa, imenovano rsyslog.sql.
# mysqldump -u root -ptecmint rsyslog > rsyslog.sql
Če želite narediti varnostno kopijo več baz podatkov, zaženite naslednji ukaz. Naslednji primer ukaza vzame varnostno kopijo strukture baz podatkov [rsyslog, syslog] v eno datoteko, imenovano rsyslog_syslog.sql.
# mysqldump -u root -ptecmint --databases rsyslog syslog > rsyslog_syslog.sql
Če želite narediti varnostno kopijo vseh baz podatkov, uporabite naslednji ukaz z možnostjo –all-database. Naslednji ukaz prevzame varnostno kopijo vseh zbirk podatkov z njihovo strukturo in podatki v datoteko, imenovano all-databases.sql.
# mysqldump -u root -ptecmint --all-databases > all-databases.sql
Če želite samo varnostno kopijo strukture baze podatkov brez podatkov, v ukazu uporabite možnost –no-data. Spodnji ukaz izvozi strukturo baze podatkov [rsyslog] v datoteko rsyslog_structure.sql.
# mysqldump -u root -ptecmint -–no-data rsyslog > rsyslog_structure.sql
Če želite varnostno kopirati podatke baze podatkov samo brez strukture, nato z ukazom uporabite možnost –no-create-info. Ta ukaz podatke zbirke podatkov [rsyslog] sprejme v datoteko rsyslog_data.sql.
# mysqldump -u root -ptecmint --no-create-db --no-create-info rsyslog > rsyslog_data.sql
S spodnjim ukazom lahko naredite varnostno kopijo posamezne tabele ali določenih tabel baze podatkov. Na primer, naslednji ukaz vzame varnostno kopijo tabele wp_posts iz baze podatkov wordpress.
# mysqldump -u root -ptecmint wordpress wp_posts > wordpress_posts.sql
Če želite iz baze podatkov vzeti varnostno kopijo več ali nekaterih tabel, ločite vsako tabelo s presledkom.
# mysqldump -u root -ptecmint wordpress wp_posts wp_comments > wordpress_posts_comments.sql
Spodnji ukaz prevzame varnostno kopijo baze podatkov [galerija] oddaljenega strežnika [172.16.25.126] v lokalni strežnik.
# mysqldump -h 172.16.25.126 -u root -ptecmint gallery > gallery.sql
Kako obnoviti bazo podatkov MySQL?
V zgornji vadnici smo videli, kako narediti varnostno kopijo podatkovnih baz, tabel, struktur in podatkov, zdaj pa bomo videli, kako jih obnoviti v naslednji obliki.
# # mysql -u [username] –p[password] [database_name] < [dump_file.sql]
Če želite obnoviti bazo podatkov, morate na ciljni napravi ustvariti prazno bazo podatkov in jo obnoviti z ukazom msyql. Naslednji ukaz bo na primer obnovil datoteko rsyslog.sql v bazo podatkov rsyslog.
# mysql -u root -ptecmint rsyslog < rsyslog.sql
Če želite obnoviti bazo podatkov, ki že obstaja na ciljnem računalniku, boste morali uporabiti ukaz mysqlimport.
# mysqlimport -u root -ptecmint rsyslog < rsyslog.sql
Na enak način lahko obnovite tudi tabele, strukture in podatke zbirke podatkov. Če vam je bil ta članek všeč, ga delite s prijatelji.