MySQL: så här säkerhetskopierar du (dumpar) och återställer databasen med mysqldump

den här artikeln visar hur du dumpar och återställer MySQL-databasen från kommandoraden i Linux med mysqldump och mysql-kommandon.

om du använder MySQL eller MariaDB databaser är det mycket viktigt för dig att förstå hur man tar backup och återställa data. Dessutom måste du hålla regelbundna säkerhetskopior av databasen och detta kommer att hjälpa dig att återställa dina data om din ansökan kraschar eller data är skadad av något systemfel.

MySQL och MariaDB inkluderar kommandoradsverktyg som du kan använda för att snabbt och enkelt dumpa och återställa databaser. Verktyget mysqldump används för att exportera innehållet i en databas till en textfil, medan klienten mysql kan användas för att importera data från en textfil till en MySQL/MariaDB-databas.

hur man använder kommandot MySQL Dump

kommandoradsverktyget mysqldump exporterar databaser till SQL-textfiler. Med andra ord används den för att ta MySQL-databasdumpen.

syntaxen för mysqldump kommandot ges nedan:

mysqldump -u -p > .sql

där:

  • användarnamn är ditt MySQL/MariaDB användarnamn.
  • -p fråga efter lösenord för den här användaren.
  • databasnamn är namnet på den Databas du vill säkerhetskopiera.
  • filnamn.sql är den fullständiga sökvägen till sql-dumpfilen som innehåller säkerhetskopian.

databasprocedurer, funktioner, visningar och händelser dumpas vid säkerhetskopieringen.

mysqldump: säkerhetskopiera en enda MySQL-databas

i det här exemplet heter databasen my_wordpress. Ersätt detta med namnet på databasen du vill exportera. Enligt syntaxen skapas säkerhetskopian på den aktuella platsen.

mysqldump -u root -p my_wordpress > my_wordpress_backup.sql

när kommandot har körts anger du ditt MySQL-root-lösenord.

detta skapar en MySQL-dumpfil med namnet my_wordpress_backup.sql som innehåller alla SQL-satser för att skapa tabeller och återställa data till en befintlig databas. Om några fel uppstår under exportprocessen kommer mysqldump att skriva ut dem på skärmen.

kommandot ger ingen visuell utmatning, men du kan inspektera innehållet i my_wordpress_backup.sql med huvudkommandot för att kontrollera om det är en legitim MySQL-dumpfil.

head -n 5 my_wordpress_backup.sql
-- MariaDB dump 10.19 Distrib 10.5.9-MariaDB, for Linux (x86_64)-- Host: localhost Database: my_wordpress -- Server version 10.3.27-MariaDB-0+deb10u1

mysqldump: Säkerhetskopiera flera MySQL-databaser

för att säkerhetskopiera flera MySQL-databaser med ett kommando måste du använda alternativet --databases följt av listan över databaser du vill säkerhetskopiera. Dessutom kan du placera resultatfilen på en plats du väljer.

kör följande kommando för att skapa en MySQL-dumpfil my_backup.sql i /home/backups katalog med två databaser med namnet my_wordpress och ftpusers.

mysqldump -u root -p --databases my_wordpress ftpusers > /home/backups/my_backup.sql 

mysqldump: säkerhetskopiera alla MySQL-databaser

använd alternativet --all-databases för att säkerhetskopiera alla MySQL-databaser:

mysqldump -u root -p --all-databases > all_db_backup.sql

hur man skapar en komprimerad MySQL-databas Backup

om databasstorleken är mycket stor är det bra att komprimera utdata. För att göra det rör du bara utmatningen till kommandot gzip och omdirigerar den till en fil som visas nedan:

mysqldump -u root -p my_wordpress | gzip > my_wordpress_backup.sql.gz

mysql: Återställ MySQL från en MySQL-dumpfil

för att återställa en säkerhetskopia skapad med mysqldump måste du använda kommandot mysql.

mysql -u -p < .sql

var

  • användarnamn är ditt MySQL/MariaDB användarnamn.
  • -p fråga efter lösenord för den här användaren.
  • databasnamn är namnet på databasen där du vill återställa.
  • filnamn.sql är den fullständiga sökvägen till sql-dumpfilen som innehåller säkerhetskopian.

mysql: Återställ en enda MySQL-databas

du kan återställa alla tabeller från MySQL-dumpfilen i en viss databas.

återställningen utförs helt enkelt med kommandot nedan, där vi återigen anger en användare och uppmanas att ange ett lösenord och skickar filen my_wordpress_backup.sql till databasen my_wordpress.

mysql -u root -p my_wordpress < my_wordpress_backup.sql

du kommer att bli ombedd att ange lösenordet för din MySQL-användare.

när detta är klart bör databasen vara tillgänglig i den löpande instansen av MySQL. MySQL-dumpfilen som du importerade från kommer också att finnas kvar, så du kan antingen lagra det säkert vid denna tidpunkt eller ta bort det om det inte längre behövs.

mysql: Återställ alla MySQL-databaser

du kan återställa alla databaser på alla MySQL-servrar till en annan MySQL-server från MySQL-dumpfilen.

mysql -u root -p < all_db_backup.sql

slutsats

nu kan du hålla regelbunden säkerhetskopiering av dina databasfiler och återställa data när det krävs genom att följa stegen ovan.

denna handledning gäller även när du vill migrera till en ny server. Säkerhetskopiera bara databasen på din gamla server och ladda upp MySQL-dumpfilen till den nya servern. Skapa en destinationsdatabas på den nya servern och kör sedan den uppladdade MySQL-dumpfilen i den nya databasen. Dessutom bör du också återskapa användare och behörigheter från den gamla MySQL-servern till den nya.

för mer detaljerad information, här är länken till den officiella dokumentationen.

Leave a Reply