Når de er færdige Backup af MySQL -database, det er almindeligt at bruge kommandoen mysqldump ingen muligheder. Denne kommando har imidlertid mange interessante muligheder, der giver dig mulighed for at udføre avancerede sikkerhedskopier.
Som standard er mysqldump -kommandoen genererer en kopi af sql -strukturen alle tabellerne i databasen angivet, i en tekstfil sql. Hvis du kun vil medtage en eller flere tabeller, skal du indtaste deres navne efter databasens navn.
Fra terminalvinduet i mysql -biblioteket:
# Sikkerhedskopiering af enkeltbord $ mysqldump -user = bruger --password = tabeldatabasenøgle> backup_sql
# Sikkerhedskopier tre tabeller $ mysqldump -user = bruger --password = database nøgletabel1 tabel2 tabel3> backup_sqlEksempler på 1 eller 3 borde.
1. Ekskluderer nogle tabeller fra backup
For ikke at inkludere en bestemt tabel i backupen, skal vi angive den med --ignore-table optionen, hvis værdi skal angives
Hvis du f.eks. Laver en sikkerhedskopi af en database kaldet handel, men du ikke vil have en tabel kaldet salg inkluderet, skal du køre følgende kommando:
$ mysqldump --user = bruger -password = password --ignore -table = merchant.sales merchant> backup_back.sqlMed andre ord, kopier hele handelsdatabasen undtagen salgstabellen. Hvis vi vil ekskludere flere tabeller, skal vi bruge følgende kommando:
$ mysqldump --bruger = bruger-adgangskode = kodeord --ignore-table = commerce.sales --ignore-table = commerce.products --ignore-table = handel. handelspriser> backup_copy.sql(For at ekskludere flere tabeller skal du angive deres navne med lige så mange --ignore-table muligheder)
2. Begrænsning af antallet af poster i hver tabel
Som standard kopierer mysqldump -kommandoen alle poster fra alle tabellerne. Hvis du tidligere vil filtrere posterne, skal du tilføje indstillingen -where, som giver dig mulighed for at angive WHERE -tilstandstilstanden, der tilføjes de SELECT -forespørgsler, der skal foretages for at udtrække alle poster:
$ mysqldump --user = bruger -password = password -where = "alder> 18 OG alder backup_back.sqlHvis vi kun vil udtrække nogle poster fra databasen, for eksempel de første 500
$ mysqldump --user = bruger -password = password -where = "1 limit 500" database> backup.sqlDe ville blive ekstraheret med en grænse på 500.
3. Kopier kun tabellenes struktur, men ikke deres data
Som standard er kommando mysqldump dumper både tabellenes struktur og alle deres oplysninger. Hvis du kun er interesseret i at dumpe strukturen i tabellerne og kolonnerne, skal du bruge-ingen data. Så du kan oprette en anden database nøjagtig den samme, men tom:
$ mysqldump --user = bruger-password = password-ingen database> backup_sqlNormalt når indsatserne genereres, grupperes de i en enkelt sætning for at gemme kodelinjer som følger:
SÆT I TABELVÆRDIER (1, 'navn1'), (2, 'navn2'), (3, 'navn3');Dette er adfærd, der kan forårsage fejl med ældre systemer, der ikke kan behandle lange linjer. På samme måde kan du støde på problemer med din tekstredigerer, når du prøver at åbne en sikkerhedskopifil, der indeholder disse lange linjer.
Hvis vi står over for denne sag, kan vi tilføje muligheden --extended-insert = false for at få hvert INSERT til at køre med sit eget udsagn:
$ mysqldump --user = bruger -password = password --extended -insert = false database> backup_sqlResultatet bliver følgende:
INDSÆT I TABELVÆRDIER (1, 'navn1'); INDSÆT I TABELVÆRDIER (2, 'navn2'); INDSÆT I TABELVÆRDIER (3, 'navn3');Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt