När de är klara MySQL -databas -säkerhetskopior, det är vanligt att använda kommandot mysqldump inga alternativ. Detta kommando har dock många intressanta alternativ som gör att du kan utföra avancerade säkerhetskopior.
Som standard är kommandot mysqldump genererar en kopia av SQL -strukturen alla tabellerna i databasen anges, i en textfil sql. Om du bara vill inkludera en eller flera tabeller anger du deras namn efter databasnamnet.
Från terminalfönstret i mysql -katalogen:
# Enkel tabell backup $ mysqldump -user = användare -passord = tabell databas nyckel> backup_sql
# Säkerhetskopiera tre tabeller $ mysqldump -user = användare -passord = databasnyckeltabell1 tabell2 tabell3> backup_sqlExempel på 1 eller 3 tabeller.
1. Exklusive några tabeller från backup
För att inte inkludera en specifik tabell i säkerhetskopian måste vi ange den med alternativet --ignore-table, vars värde måste anges
Om du till exempel gör en säkerhetskopia av en databas som heter handel men du inte vill att en tabell som heter försäljning ska inkluderas, kör följande kommando:
$ mysqldump --user = användare -lösenord = lösenord --ignore -table = merchant.sales merchant> backup_back.sqlMed andra ord, kopiera hela handelsdatabasen utom försäljningstabellen. Om vi vill utesluta flera tabeller måste vi använda följande kommando:
$ mysqldump --user = användare-lösenord = lösenord --ignore-table = commerce.sales --ignore-table = commerce.products --ignore-table = commerce. handelspriser> backup_copy.sql(För att utesluta flera tabeller, ange deras namn med lika många --ignore-tabellalternativ)
2. Begränsa antalet poster i varje tabell
Som standard kopierar kommandot mysqldump alla poster från alla tabeller. Om du tidigare vill filtrera posterna lägger du till alternativet -where, som låter dig ange WHERE -typvillkoret som läggs till i SELECT -frågorna som görs för att extrahera alla poster:
$ mysqldump --user = användare -lösenord = lösenord --where = "ålder> 18 OCH ålder backup_back.sqlOm vi bara vill extrahera några poster från databasen, till exempel de första 500
$ mysqldump --user = user -password = lösenord --where = "1 gräns 500" databas> backup.sqlDe skulle extraheras med en gräns på 500.
3. Kopiera endast tabellens struktur men inte deras data
Som standard är kommando mysqldump dumpar både tabellens struktur och all deras information. Om du bara är intresserad av att dumpa strukturen för tabellerna och kolumnerna, använd alternativet --no-data. Så du kan skapa en annan databas exakt samma men tom:
$ mysqldump --user = användare-lösenord = lösenord-ingen databas> backup_sqlNormalt när insatserna genereras grupperas de i en enda sats för att spara kodrader enligt följande:
SÄTT IN I tabellen VÄRDER (1, 'namn1'), (2, 'namn2'), (3, 'namn3');Detta är beteende som kan orsaka fel med äldre system som inte kan behandla långa rader. På samma sätt kan du stöta på problem med din textredigerare när du försöker öppna en säkerhetskopia som innehåller dessa långa rader.
Om vi står inför detta fall kan vi lägga till alternativet --extended-insert = false för att få varje INSERT att köra med sitt eget uttalande:
$ mysqldump --user = user -password = lösenord --extended -insert = false database> backup_sqlResultatet blir följande:
SÄTT IN I tabellen VÄRDER (1, 'namn1'); SÄTT IN I tabellen VÄRDER (2, 'namn2'); SÄTT IN I tabellen VÄRDER (3, 'namn3');Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng