How to backup and restore mysql database using mysqldump
Inhoudsopgave:
- Mysqldump-opdrachtsyntaxis
- Maak een back-up van een enkele MySQL-database
- Backup meerdere MySQL-databases
- Maak een back-up van alle MySQL-databases
- Maak een back-up van alle MySQL-databases om bestanden te scheiden
- Maak een gecomprimeerde MySQL-databaseback-up
- Maak een back-up met tijdstempel
- Een MySQL-dump herstellen
- Herstel een enkele MySQL-database vanaf een volledige MySQL-dump
- Exporteer en importeer een MySQL-database in één opdracht
- Automatiseer back-ups met Cron
- Conclusie
In deze zelfstudie wordt uitgelegd hoe u een back-up kunt maken van MySQL- of MariaDB-databases vanaf de opdrachtregel met behulp van het hulpprogramma mysqldump.
De back-upbestanden die zijn gemaakt door het hulpprogramma mysqldump zijn in feite een set SQL-instructies die kunnen worden gebruikt om de oorspronkelijke database opnieuw te maken. De opdracht mysqldump kan ook bestanden genereren in CSV- en XML-indeling.
U kunt ook het hulpprogramma mysqldump gebruiken om uw MySQL-database over te dragen naar een andere MySQL-server.
Mysqldump-opdrachtsyntaxis
Voordat we ingaan op het gebruik van de opdracht mysqldump, gaan we eerst kijken naar de basissyntaxis.
De uitdrukkingen van het hulpprogramma mysqldump hebben de volgende vorm:
mysqldump > file.sql
-
options
- De mysqldump optionsfile.sql
- Het dumpbestand (back-up)
Om de opdracht mysqldump te gebruiken, moet de MySQL-server toegankelijk en actief zijn.
Maak een back-up van een enkele MySQL-database
Het meest voorkomende gebruik van de mysqldump-tool is het maken van een back-up van een enkele database.
Als u bijvoorbeeld een back-up van de database met de naam
database_name
met behulp van de
root
van de gebruiker en deze wilt opslaan in een bestand met de naam
database_name.sql
, voert u de volgende opdracht uit:
mysqldump -u root -p database_name > database_name.sql
U wordt gevraagd het rootwachtwoord in te voeren. Na succesvolle authenticatie start het dumpproces. Afhankelijk van de grootte van de database kan het proces enige tijd duren.
mysqldump database_name > database_name.sql
Backup meerdere MySQL-databases
Om met één opdracht een back-up van meerdere MySQL-databases te maken, moet u de optie
--database
gebruiken, gevolgd door de lijst met databases waarvan u een back-up wilt maken. Elke databasenaam moet worden gescheiden door een spatie.
mysqldump -u root -p --databases database_name_a database_name_b > databases_a_b.sql
De bovenstaande opdracht maakt een dumpbestand met beide databases.
Maak een back-up van alle MySQL-databases
Gebruik de optie
--all-databases
om een back-up te maken van alle MySQL-databases:
mysqldump -u root -p --all-databases > all_databases.sql
Hetzelfde als bij het vorige voorbeeld maakt de bovenstaande opdracht een dumpbestand met alle databases.
Maak een back-up van alle MySQL-databases om bestanden te scheiden
Het hulpprogramma
mysqldump
biedt geen optie om van alle databases een back-up te maken naar afzonderlijke bestanden, maar dat bereiken we eenvoudig met een eenvoudige bash
FOR
lus:
for DB in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $DB > "$DB.sql"; done
De bovenstaande opdracht maakt een afzonderlijk dumpbestand voor elke database met de databasenaam als bestandsnaam.
Maak een gecomprimeerde MySQL-databaseback-up
Als de database erg groot is, is het een goed idee om de uitvoer te comprimeren. Om dat te doen, stuurt u de uitvoer naar het hulpprogramma
gzip
en stuurt u deze door naar een bestand zoals hieronder wordt weergegeven:
mysqldump database_name | gzip > database_name.sql.gz
Maak een back-up met tijdstempel
mysqldump database_name > database_name-$(date +%Y%m%d).sql
De bovenstaande opdracht maakt een bestand met het volgende formaat
database_name-20180617.sql
Een MySQL-dump herstellen
U kunt een MySQL-dump herstellen met de
mysql
tool. De algemene syntaxis van het commando is als volgt:
mysqld database_name < file.sql
In de meeste gevallen moet u een database maken om in te importeren. Als de database al bestaat, moet u deze eerst verwijderen.
In het volgende voorbeeld maakt de eerste opdracht een database met de naam
database_name
en vervolgens importeert deze de dump
database_name.sql
:
mysql -u root -p -e "create database database_name";
mysql -u root -p database_name < database_name.sql
Herstel een enkele MySQL-database vanaf een volledige MySQL-dump
mysql --one-database database_name < all_databases.sql
Exporteer en importeer een MySQL-database in één opdracht
In plaats van een dumpbestand van de ene database te maken en de back-up vervolgens in een andere MySQL-database te importeren, kunt u de volgende one-liner gebruiken:
mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name
De bovenstaande opdracht stuurt de uitvoer naar een mysql-client op de externe host en importeert deze in een database met de naam
remote_database_name
. Controleer voordat u de opdracht uitvoert of de database al op de externe server bestaat.
Automatiseer back-ups met Cron
Het automatiseren van het back-upproces van de databases is net zo eenvoudig als het maken van een cron-taak waarmee de opdracht mysqldump op een bepaald tijdstip wordt uitgevoerd.
Volg onderstaande stappen om geautomatiseerde back-ups van een MySQL-database in te stellen met behulp van cronjob:
-
Maak een bestand met de naam
.my.cnf
in uw.my.cnf
voor gebruikers:sudo nano ~/.my.cnf
Kopieer en plak de volgende tekst in het.my.cnf-bestand.
user = dbuser password = dbpasswd
Vergeet niet om
dbuser
endbpasswd
te vervangen door de database-gebruiker en het wachtwoord van de gebruiker.Beperk machtigingen van het legitimatiegegevensbestand zodat alleen uw gebruiker hier toegang toe heeft:
chmod 600 ~/.my.cnf
Maak een map om de back-ups op te slaan:
mkdir ~/db_backups
Open uw crontab-bestand van de gebruiker:
crontab -e
Voeg de volgende cron-taak toe die elke dag om
mydb
uur een back-up maakt van een databasenaammydb
:0 3 * * * /usr/bin/mysqldump -u dbuser mydb > /home/username/db_backups/mydb-$(date +%Y%m%d).sql
Vergeet niet uw gebruikersnaam te vervangen door uw daadwerkelijke gebruikersnaam.
U kunt ook een andere cronjob maken om back-ups ouder dan 30 dagen te verwijderen:
find /path/to/backups -type f -name "*.sql" -mtime +30 -delete
Natuurlijk moet u de opdracht aanpassen aan uw back-uplocatie en bestandsnamen. Voor meer informatie over de opdracht Zoeken raadpleegt u Bestanden zoeken in Linux met behulp van de opdrachtregelgids.
Conclusie
Deze tutorial behandelt alleen de basis, maar het zou een goed begin moeten zijn voor iedereen die wil leren hoe MySQL-databases te maken en te herstellen vanaf de opdrachtregel met behulp van het hulpprogramma mysqldump.
U kunt ook de tutorial raadplegen over het resetten van een MySQL-rootwachtwoord voor het geval u het bent vergeten.
mysql mariadb backup mysqldumpSidekickles: back-up maken, back-ups maken, back-ups maken
Verzameling: 4 back-uphulpprogramma's voor mobiele apparaten om u te stoten om uw dierbare te beschermen data.
Siemens: Duitse klant getroffen door industriële worm bevestigde dinsdag dat een van zijn Duitse klanten is getroffen door een nieuwe worm die is ontworpen om geheimen te stelen van industriële besturingssystemen. Siemens bevestigde dinsdag dat een van zijn klanten is getroffen door een nieuwe worm die is ontworpen om geheimen te stelen van industriële besturingssystemen. Tot op heden is het bedrijf op de hoogte gebracht van één aanval op een Duitse fabrikant dat Siemens weigerde te id
De worm, Stuxnet genaamd, werd vorige maand voor het eerst gezien toen het systemen infecteerde bij een niet-geïdentificeerde Iraanse organisatie, volgens Sergey Ulasen, hoofd van het antivirusprogramma. kernelafdeling bij VirusBlokAda, in Minsk, Wit-Rusland. Het niet-geïdentificeerde slachtoffer, dat geen eigenaar is van het type SCADA-systeem (toezichtcontrole en gegevensverzameling) dat door de worm wordt getarget, "vertelde ons dat hun werkstations serieel opnieuw werden opgestart zonder eni
Hoe een back-up te maken van uw Firefox-profiel en deze te herstellen met behulp van febe
Leer hoe u een back-up van uw Firefox-profiel kunt maken en terugzetten met behulp van FEBE