Kad završe Sigurnosne kopije baze podataka MySQL, uobičajeno je koristiti naredbu mysqldump nema opcija. Međutim, ova naredba ima mnogo zanimljivih opcija koje vam omogućuju izvođenje naprednih sigurnosnih kopija.
Prema zadanim postavkama, Naredba mysqldump generira kopiju sql strukture svih tablica u bazi podataka naznačeno, u tekstualnoj datoteci sql. Da biste uključili samo jednu ili više tablica, unesite njihova imena iza naziva baze podataka.
Iz prozora terminala u direktoriju mysql:
# Sigurnosna kopija jedne tablice $ mysqldump -user = korisnik --password = Ključ baze podataka tablice> backup_sql
# Sigurnosno kopirajte tri tablice $ mysqldump -user = user --password = ključ baze podataka table1 table2 table3> backup_sqlPrimjeri 1 ili 3 tablice.
1. Izuzimanje nekih tablica iz sigurnosne kopije
Kako ne bismo uključili određenu tablicu u sigurnosnu kopiju, moramo je označiti opcijom --ignore-table, čija vrijednost mora biti navedena
Na primjer, ako radite sigurnosnu kopiju baze podataka koja se zove commerce, ali ne želite da se uključi tablica pod nazivom sales, pokrenite sljedeću naredbu:
$ mysqldump --user = korisnik -lozinka = lozinka --ignore -table = merchant.sales trgovac> backup_back.sqlDrugim riječima, kopirajte cijelu trgovačku bazu podataka osim tablice prodaje. Ako želimo isključiti nekoliko tablica, moramo upotrijebiti sljedeću naredbu:
$ mysqldump --user = korisnik --password = lozinka --ignore-table = commerce.sales --ignore-table = commerce.products --ignore-table = commerce. commerce cijene> backup_copy.sql(Da biste isključili više tablica, navedite njihova imena sa što više opcija --ignore-table)
2. Ograničavanje broja zapisa u svakoj tablici
Prema zadanim postavkama, naredba mysqldump kopirat će sve zapise iz svih tablica. Ako želite prethodno filtrirati zapise, dodajte opciju --where koja vam omogućuje da naznačite uvjet tipa WHERE koji se dodaje upitima SELECT koji su napravljeni za izdvajanje svih zapisa:
$ mysqldump --user = korisnik --password = lozinka --where = "dob> 18 I dob backup_back.sqlAko želimo izdvojiti samo neke zapise iz baze podataka, na primjer prvih 500
$ mysqldump --user = user -password = lozinka --where = "1 limit 500" baza podataka> backup.sqlIzvukli bi ih s ograničenjem od 500.
3. Kopirajte samo strukturu tablica, ali ne i njihove podatke
Prema zadanim postavkama, naredba mysqldump ispisuje i strukturu tablica i sve njihove podatke. Ako vas zanima samo brisanje strukture tablica i stupaca, upotrijebite opciju --no-data. Dakle, možete stvoriti drugu bazu podataka potpuno istu, ali praznu:
$ mysqldump --user = korisnik --password = lozinka-baza podataka bez podataka> backup_sqlObično se umetci generiraju grupiraju u jednu izjavu kako bi spremili redove koda na sljedeći način:
INSERT INTO table VALUES (1, 'name1'), (2, 'name2'), (3, 'name3');Ovo je ponašanje koje može uzrokovati pogreške kod starijih sustava koji ne mogu obraditi dugačke redove. Slično, možete naići na probleme s uređivačem teksta kada pokušate otvoriti datoteku sigurnosne kopije koja sadrži ove dugačke retke.
Ako se suočimo s ovim slučajem, možemo dodati opciju --extended-insert = false kako bi se svaki INSERT pokrenuo s vlastitom izjavom:
$ mysqldump --user = user -password = lozinka --extended -insert = false database> backup_sqlRezultat će biti sljedeći:
INSERT INTO table VALUES (1, 'name1'); INSERT INTO table VALUES (2, 'name2'); INSERT INTO table VALUES (3, 'name3');Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod