Als ze klaar zijn Back-ups van MySQL-databases, het is gebruikelijk om het commando mysqldump geen opties. Deze opdracht heeft echter veel interessante opties waarmee u geavanceerde back-ups kunt maken.
Standaard is de mysqldump-opdracht genereert een kopie van de sql-structuur van alle tabellen in de database aangegeven, in een tekstbestand sql. Als u slechts een of meer tabellen wilt opnemen, voert u hun namen in achter de databasenaam.
Vanuit het terminalvenster in de mysql-map:
# Enkele tabelback-up $ mysqldump -user = gebruiker --password = tabeldatabasesleutel> backup_sql
# Back-up van drie tabellen $ mysqldump -user = gebruiker --password = databasesleutel table1 table2 table3> backup_sqlVoorbeelden van 1 of 3 tabellen.
1. Sommige tabellen uitsluiten van back-up
Om geen specifieke tabel in de back-up op te nemen, moeten we deze aangeven met de optie --ignore-table, waarvan de waarde moet worden aangegeven
Als u bijvoorbeeld een back-up maakt van een database met de naam commerce, maar u wilt niet dat een tabel met de naam sales wordt opgenomen, voert u de volgende opdracht uit:
$ mysqldump --user = gebruiker - wachtwoord = wachtwoord --ignore-table = handelaar.verkoop handelaar> backup_back.sqlMet andere woorden, kopieer de hele handelsdatabase behalve de verkooptabel. Als we meerdere tabellen willen uitsluiten, moeten we het volgende commando gebruiken:
$ mysqldump --user = gebruiker --password = wachtwoord --ignore-table = commerce.sales --ignore-table = commerce.products --ignore-table = commerce. commerce prijzen> backup_copy.sql(Om meerdere tabellen uit te sluiten, specificeert u hun namen met zoveel --ignore-table opties)
2. Het aantal records in elke tabel beperken
Standaard kopieert de opdracht mysqldump alle records uit alle tabellen. Als u de records eerder wilt filteren, voegt u de --where-optie toe, waarmee u de WHERE-typevoorwaarde kunt aangeven die wordt toegevoegd aan de SELECT-query's die zijn gemaakt om alle records te extraheren:
$ mysqldump --user = gebruiker --password = wachtwoord --where = "leeftijd> 18 EN leeftijd backup_back.sqlAls we slechts enkele records uit de database willen extraheren, bijvoorbeeld de eerste 500
$ mysqldump --user = user -password = wachtwoord --where = "1 limit 500" database> backup.sqlZe zouden worden geëxtraheerd met een limiet van 500.
3. Kopieer alleen de structuur van de tabellen, maar niet hun gegevens
Standaard is de opdracht mysqldump dumpt zowel de structuur van de tabellen als al hun informatie. Als u alleen geïnteresseerd bent in het dumpen van de structuur van de tabellen en kolommen, gebruik dan de --no-data optie. U kunt dus een andere database maken die precies hetzelfde is, maar leeg is:
$ mysqldump --user = gebruiker --password = wachtwoord --no-data database> backup_sqlNormaal gesproken worden de invoegingen, wanneer ze worden gegenereerd, gegroepeerd in een enkele instructie om regels code als volgt op te slaan:
INSERT INTO tabel VALUES (1, 'naam1'), (2, 'naam2'), (3, 'naam3');Dit is gedrag dat fouten kan veroorzaken bij oudere systemen die geen lange regels kunnen verwerken. Evenzo kunt u problemen ondervinden met uw teksteditor wanneer u probeert een back-upbestand te openen dat deze lange regels bevat.
Als we met deze zaak worden geconfronteerd, kunnen we de optie toevoegen --extended-insert = false om elke INSERT met zijn eigen instructie te laten werken:
$ mysqldump --user = gebruiker -password = wachtwoord --extended-insert = valse database> backup_sqlHet resultaat zal het volgende zijn:
INSERT INTO tabel VALUES (1, 'naam1'); INSERT INTO tabel VALUES (2, 'naam2'); INSERT INTO tabel VALUES (3, 'naam3');Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een positief punt te geven