Een MySQL-database exporteren met mysqldump

19 augustus, 2014
Handleidingen
MySQL

mysqldump is een door Oracle ontwikkelde applicatie voor het exporteren ("dumpen") van de structuur en inhoud van één of meerdere MySQL-databases vanaf de Linux commandoregel. Het programma creëert voor elke database-dump een .sql-bestand, dat naderhand eenvoudig weer met het mysql-commando kan worden geïmporteerd. Eventueel kan aan een "dump" ook een ander bestandsformaat gegeven worden, zoals CSV of XML.

Om de exporteertaak uit te kunnen voeren moet de gebruiker waarmee mysqldump wordt aangestuurd over de benodigde privileges beschikking. Voor deze handleiding, waarin alleen tabellen en geen views of triggers geëxporteerd zullen worden, volstaat een gebruiker met het SELECT-privilege.

mysqldump is standaard inbegrepen in de meeste installaties van MySQL. Controleer dit eventueel met onderstaand commando:

mysqldump -V

Een MySQL-database exporteren

Als de naam van de database evenals de gebruikersnaam en het bijbehorende wachtwoord bekend zijn, kan als volgt een backup gemaakt worden:

mysqldump -u GEBRUIKERSNAAM -pWACHTWOORD DATABASENAAM > BESTANDSNAAM.sql

De -u parameter staat voor username, en wordt gevolgd door de gebruikersnaam met de juiste privileges. Het wachtwoord voor die gebruiker volgt direct na de -p parameter, zonder tussenkomende spatie. Je kunt eventueel volstaan met alleen de parameter, dan wordt je na het insturen van de opdracht door mysqldump om het wachtwoord gevraagd. Na de -p parameters komt de naam van de database, gevolgd door een groter-dan teken (>) waarmee aangegeven wordt dat alle gegevens in het navolgende bestand moeten worden opgeslagen. Je kunt hier ook een volledig pad opgegeven.

mysqldump -u jan -p WordPress > /var/backups/wordpress-backup.sql
Enter password:

Als de database bestaat en de gebruikersnaam en wachtwoord geaccepteerd worden, zal mysqldump een backup genereren. Hoe lang dit duurt, is met name afhankelijk van de grootte van de database. Zodra het programma klaar is, vind je het .sql-bestand in de huidige map of op de opgegeven locatie.

Wil je meerdere, of zelfs alle databases tegelijkertijd exporteren, gebruik dan één van deze variaties op bovenstaand commando:

mysqldump -u jan -p --databases WordPress Webshop > databases.sql
mysqldump -u jan -p --all-databases > databases.sql

mysqldump kent nog vele geavanceerde parameters en functies, die met het commando mysqldump --help zijn op te vragen.