Kad pričam o komandnoj liniji – pričam o komandoj liniji na Linuxu – kako je na Windowsu ne znam niti me zanima ali kontam da je sintaksa ista.

Umesto „-p“ u komandama dole možete da ukucate samo „-pLOZINKA“ pa će se bekap ili restore raditi odmah – ali je preporučeno da idete ipak samo sa „-p“ kako lozinka za korisnika ne bi ostala u history-ju na Linuxu.

Bekap podataka je bezbedan – sem naravno ako bekapom ne pregazite neki drugi fajl (zato sam u svim primerima dole stavio da se bekap radi u folder /tmp) ali kad radite restore otvorite četvoro očiju a ako imate kurje otvorite i njih – jer ako imate funkcionalnu bazu podataka pa greškom uradite restore iste možete napraviti junački karambol i ostati bez podataka.

Bekap baze podataka možete raditi kao root korisnik ili kao specifični user koji ima privilegije nad datom mysql bazom i radi se radi komandom…

# Bekap samo jedne baze koja se zove 'naziv_baze' (kreativnost na nivou)
mysqldump -u DB_KORISNIK -p naziv_baze > /tmp/BEKAP_naziv_baze.sql

 

Kad se radi restore baza će biti kreirana pod korisnikom koji je pokrenuo mysql (korisnik iza sviča -u) ako dati korisnik ima privilegije da kreira baze – a ako nema, napravite praznu bazu pa nad njom uradite restore. Kao i sa svakim restore operacijama – oprezno!

# Restore odnosno import u bazu koja se zove 'naziv_baze'
mysql -u DB_KORISNIK -p naziv_baze < /tmp/BEKAP_naziv_baze.sql

 

Bekap nad više baza podataka se može raditi nad bazama koje korisnik vidi u svojoj šemi, odnosno nad bilo kojom bazom ako bekap pokreće root korisnik u mysql-u. Bekap više baza podataka od jednom se može uraditi komandom:

# Bekap dve baze 'naziv_baze1' i 'naziv_baze2' iz jednog poteza
mysqldump -u DB_KORISNIK -p --databases naziv_baze1 naziv_baze2 > /tmp/BEKAP_baza1i2.sql

 

Bekap komplet svih baza podataka se može uraditi ako taj bekap pokreće root korisnik u mysql-u. Ako bekap pokreće specifični korisnik (kao što je u primeru korisnik DB_KORISNIK) napraviće se bekap svih baza nad kojim dati korisnik ima privilegije.

# Bekao svih baza sd kojim korisnik 'DB_KORISNIK' moze da radi
mysqldump -u DB_KORISNIK -p --all-databases > /tmp/BEKAP_svih_baza.sql

# Bekao komplet svih baza moze da radi root mysql korisnik
mysqldump -u root -p --all-databases > /tmp/BEKAP_komplet_svih_baza.sql

 

Restore samo jedne baze podataka iz bekapa gde ste bekapovali sve ili više baza podataka se radi sledećom komandom…

# Restore tj import samo jedne baze iz bekapa u kome je bekap vise baza
mysql -u DB_KORISNIK -p --one-database naziv_baze1 < /tmp/BEKAP_svih_baza.sql

# Ako ne znate koje sve baze imate u bekapu, to mozete proveriti komandom
grep -i "Current database:" BEKAP_svih_baza.sql