Skip to main content

Wat is mysqldump en hoe gebruik ik het?

How to use the mysqldump command - a working example (Juni- 2026)

How to use the mysqldump command - a working example (Juni- 2026)
Anonim

Als een van de toonaangevende vrij beschikbare databases, MySQL is een populaire keuze voor alle soorten web-applicaties. Als u wordt blootgesteld aan internet, wordt uw app natuurlijk blootgesteld aan kwaadaardige aanvallen. Als uw server is gecompromitteerd, moet u hoogstens uw toepassing opnieuw installeren. in het slechtste geval kunt u uw gegevens volledig kwijtraken. U bevindt zich uiteindelijk ook in een situatie waarin u een database van de ene naar de andere server moet migreren.

Waarvoor wordt mysqldump gebruikt?

De mysqldump tool heeft u gedekt voor beide situaties. Het is de basisfunctie om een ​​MySQL-database te nemen en deze te "dumpen" als een tekstbestand. Maar niet zomaar een tekstbestand … het bestand is een set van SQL-instructies. Deze instructies zullen, wanneer ze worden uitgevoerd, uw database opnieuw construeren naar de precieze toestand waarin het zich bevond toen u de dump uitvoerde.

Dus je kunt gebruiken mysqldump om de uitvoer van een database te nemen. Deze kunnen worden gebruikt voor back-ups, of omdat u de database naar een nieuwe host verplaatst. In beide gevallen zul je op een gegeven moment importeren het tekstbestand terug naar een MySQL-databaseserver. Het zal alle SQL-instructies in het bestand uitvoeren, waardoor uw DB opnieuw wordt opgebouwd naar de oorspronkelijke staat. Dit deel gebruikt niet echt de mysqldump commando, maar het zou ook zonder dit hulpprogramma niet mogelijk zijn!

De MySQL-documenten vermelden andere methoden voor het maken van back-ups, maar deze hebben allemaal hun eigen nadelen:

  • Hotcopying van een DB van MySQL Enterprise is een geweldige manier om deze back-ups te realiseren … als je het ondernemingsprijskaartje niet erg vindt.
  • Het kopiëren van de databusmappen van de DB kan lastig zijn als u over besturingssystemen gaat, omdat hun bestemmingen anders zijn.
  • Exporteren naar een gescheiden tekstbestand geeft u de inhoud, maar u moet de structuur zelf opnieuw maken. En je kunt maar beter precies goed …
  • U kunt vaak een back-up maken van databases van grafische gebruikersprogramma's zoals MySQL Workbench. Maar dit is een handmatig proces, d.w.z. niet iets dat u in een batchtaak kunt scripten of opnemen.

Het mysqldump-hulpprogramma installeren

Als je geïnteresseerd bent in dit artikel, is de kans groot dat je MySQL al hebt geïnstalleerd. Als dat het geval is, goed nieuws - je hebt het al mysqldump! Als dat niet het geval is, kunt u MySQL eenvoudig op de standaard manier voor uw besturingssysteem installeren.

Raadpleeg voor Windows onze instructies hier voor het installeren van MySQL op Windows 7 (het installatieproces is nog steeds grotendeels hetzelfde). Zie ook onze instructies voor het installeren van MySQL op macOS 10.7 (alweer ouder, maar nog steeds van toepassing). Gebruikers van Ubuntu-gebaseerde Linux-systemen kunnen de volgende opdracht gebruiken om de MySQL-client en hulpprogramma's te installeren:

sudo apt mysql-client installeren

Een MySQL-dump extraheren

Eenmaal geïnstalleerd, kunt u gebruiken mysqldump om een ​​volledige back-up van uw database te krijgen.

mysqldump -h de naam van uw DB-host of IP -u de gebruikersnaam van de DB -p de naam van de database> db_backup.sql

Laten we dit commando een beetje onderbreken:

  • "H": Deze vlag is de database gastheer. Het kan een volledige hostnaam zijn (bijvoorbeeld myhost.domain.com) of een IP-adres. U kunt dit veld ook leeg laten als u het op dezelfde host uitvoert als de MySQL-server.
  • "-U": Zoals gezegd, is dit jouw gebruikersnaam.
  • "-P": Als je je MySQL-installatie goed hebt beveiligd, heb je een wachtwoord verbinden. Deze vlag zonder argument zal u om een ​​wachtwoord vragen wanneer u de opdracht uitvoert. Soms is het handig om uw wachtwoord rechtstreeks als argument voor deze vlag op te geven, bijvoorbeeld in een back-up script. Maar op de vraag, zou u dat niet moeten doen, want als iemand toegang zou hebben tot uw computer, zouden zij dit wachtwoord in uw opdrachthistorie kunnen krijgen.
  • "> db_backup.sql": Dit laatste deel is veelzeggend mysqldump om al zijn uitvoer naar een bestand te leiden. Normaal zou de opdracht alles rechtstreeks naar de console uitvoeren, wat betekent dat u een reeks SQL-instructies voorbij ziet komen. Maar in plaats daarvan is het *> * -symbool een teken om al deze dingen naar het benoemde tekstbestand te sturen. En als dit bestand niet bestaat, wordt het automatisch aangemaakt.

Als het klaar is, heb je een .SQL-bestand. Dit is slechts een tekstbestand met SQL-instructies. U kunt het in elke teksteditor openen om de inhoud te inspecteren. Als u naar een export vanuit een WordPress-database kijkt, kunt u zien hoe deze bestanden worden samengesteld.

Het bestand is onderverdeeld in secties. In de bovenstaande afbeelding kunnen we zien dat de eerste sectie de tabel voor WordPress-opmerkingen instelt. De tweede sectie reconstrueert vervolgens de inhoud (dat wil zeggen commentaarrecords) die in die tabellen was. Wanneer u uw MySQL-dump opnieuw gaat importeren, zal de opdracht door het bestand gaan, de instructies uitvoeren en uw database opnieuw opbouwen zoals het was. Dus hoe doe je dat? Laten we kijken.

Een MySQL Dump-bestand importeren

Voordat u dit kunt doen, heeft u een reeds aangemaakte database nodig met een geldige gebruikersnaam en wachtwoord. Je zou ook alle rechten voor de database moeten hebben. (Strikt genomen heeft u het niet nodig VERLENEN toestemming, maar het is eenvoudiger om ze allemaal gewoon te verlenen.) U kunt details over databasrechten in dit artikel vinden.

Voer de volgende stappen uit om uw gegevens opnieuw te importeren:

  1. Log in op de MySQL-server met de mysql commando.
  2. Type gebruik database naam op de prompt, vervangende de toepasselijke naam van de DB.
  3. invoeren bron bestandsnaam, vervang door de naam van het dumpbestand dat u eerder hebt genomen.

Wanneer u klaar bent, ziet u een lange lijst met berichten waaruit blijkt dat SQL-instructies worden uitgevoerd. Let op fouten, maar als u over de juiste rechten beschikt, zou het goed moeten gaan, want het is een lege database.

Zodra het proces is voltooid, beschikt u over een duplicaat van uw oorspronkelijke database. U kunt dit verifiëren door nog een dump uit te voeren en de twee uitgangen te vergelijken. Een degelijke teksteditor zal dit voor u kunnen doen, of een speciale * diff * -tool zoals die in de onderstaande afbeelding wordt getoond:

Er zijn slechts twee verschillen tussen deze bestanden, zoals weergegeven door rode lijnen helemaal bovenaan en onderaan de rechter schuifbalk. De eerste is de regel die de databasenaam bevat, en we verwachten dat dit anders is omdat we ze anders hebben genoemd. De tweede, helemaal aan het einde, is de tijdstempel voor het dumpbestand. En we verwachten ook dat dit anders is, omdat we de tweede database na de eerste hebben gerecreëerd. Anders zijn de bestanden precies hetzelfde, wat betekent dat de databases die ze hebben gegenereerd ook zo zijn!