Säkerhetskopiera och återställa MySQL-databaser (Windows-version)

Sidan uppdaterad :
Datum för skapande av sida :

Omvärld

MySQL (på engelska)
  • MySQL 8.0 Community Edition
Windows
  • Windows 11 (på engelska)

Förutsättningar

MySQL (på engelska)
  • MySQL 8.0
Windows
  • Windows 11 (på engelska)
  • Windows 10 (på engelska)
Windows Server
  • Windows Server 2022
  • Windows Server 2019
  • Windows Server 2016
  • Windows Server 2012 R2

förutsättning

  • En databas för MySQL är installerad.
  • Databasen som ska säkerhetskopieras finns redan.
  • Du har ställt in miljövariabler så att du kan köra mysql från kommandotolken.

Vilka typer av säkerhetskopior finns det?

Även om det inte diskuteras i detalj här, har MySQL följande typer av säkerhetskopior:

Kommandon för säkerhetskopieringTyper av säkerhetskopieringsdataKommentarer
mysqldump Logiska säkerhetskopior En uråldrig metod för säkerhetskopiering. Det grafiska användargränssnittet använder också detta
mysqlpump Logiska säkerhetskopior Förbättrad version av mysqldump
Dumpverktyg för MySQL Shell-instans och dumpinläsningsverktyg Logiska säkerhetskopior Den senaste logiska säkerhetskopieringen för tillfället
Percona XtraBackup Fysiska säkerhetskopior Stöd från tredje part för fysisk säkerhetskopiering
CLONE PLUGIN Fysiska säkerhetskopior MySQL officiella fysiska säkerhetskopior. Du måste dock lägga till ett plugin-program.

Säkerhetskopiera databaser med det grafiska användargränssnittet (MySQL Workbench)

Om du vill arbeta säkert i det grafiska användargränssnittet utan att använda kommandon kan du säkerhetskopiera med MySQL Workbench. Den typ av säkerhetskopiering som utförs av MySQL Workbench kommer att vara "mysqldump".

Starta MySQL Workbench.

Välj den anslutning som innehåller den databas som du vill säkerhetskopiera.

När databasen ska säkerhetskopieras väljer du fliken Administration i Navigatören till vänster och väljer sedan Dataexport.

Skärmen Dataexport öppnas. Skärmen är ganska bred, så expandera fönstret tills du kan se knappen "Starta export" längst ner till höger.

Välj först de databaser som du vill säkerhetskopiera. Du kan också välja fler än en.

I "Objekt att exportera" kan du välja att även säkerhetskopiera procedurer och utlösare. Det här fältet är valfritt.

I "Exportalternativ" kan du välja följande två alternativ.

Typ Beskrivning
Exportera till dumpprojektmapp Utdata till en angiven mapp som en tabell eller procedurfil.
Exportera till fristående fil Bädda in allt i en enda fil och mata ut.

Det spelar ingen roll vilket sätt du skriver ut. Ovanstående markering är lätt att ta bort om du bara vill återställa en specifik tabell. Markeringen nedan matas ut till en enda fil, vilket gör det enklare att flytta och hantera filer som en databasenhet. I det här fallet har jag valt följande.

När du har ställt in inställningarna klickar du på knappen "Starta export" i det nedre högra hörnet för att starta exporten.

Exporten startar och slutförs.

Om du matar ut den som en enda fil kommer den att se ut så här:

Om du exporterar till en mapp kommer den att se ut så här:

Återställa en databas med det grafiska användargränssnittet (MySQL Workbench)

Öppna MySQL Workbench, välj en anslutning, välj fliken Administration i navigatören till vänster och välj Dataimport/återställning. Eftersom det står "Importera/återställ" kan du skapa en ny databas från den exporterade filen eller skriva över den ursprungliga databasen.

Expandera fönstret tills du ser knappen "Starta import" i det nedre högra hörnet.

Välj "Importalternativ" enligt det exporterade filformatet. Eftersom jag exporterade som en enda fil den här gången valde jag "Importera från fristående fil" nedan och angav den exporterade filen.

Välj det schema (databas) som du vill återställa till. Du kan återställa till en befintlig databas eller återställa den som en ny databas från knappen "Ny" till höger.

När du har angett specifikationerna klickar du på knappen "Starta import" längst ner till höger för att starta återställningen.

När återställningen är klar kontrollerar du att dina data är tillbaka.

Skapa ett konto för säkerhetskopiering av databasen med kommandot

Det är inga problem om du kör ett enda kommando och säkerhetskopierar det, men om du till exempel förbereder kommandot som en fil i förväg och kör det måste du skriva lösenordet i klartext, så det är säkrare att skapa ett separat konto för säkerhetskopiering.

Vissa av de behörigheter som krävs för säkerhetskopiering kan öka eller minska beroende på vilken information som krävs.

  • HÄNDELSE
  • LÅS BORD
  • UTVALD
  • VISA VYN

Om du skapar den med ett kommando kommer den att se ut så här. Använd kommandoradsverktyget MySQL.

create user '<ユーザー名>'@'<ホスト名>' identified by '<パスワード>';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON <データベース名>.* TO '<ユーザー名>'@'<ホスト名>';
flush privileges;

exempel

create user 'backup_user'@'localhost' identified by 'password';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON test_database.* TO 'backup_user'@'localhost';
flush privileges;

Mappbehörigheter för målet för säkerhetskopieringen

Behörigheterna för mappen där säkerhetskopian sparas måste ställas in på samma sätt som behörigheterna för att utföra kommandot. Om du kör kommandot med administratörsbehörighet behöver du inte ange några ytterligare behörigheter för mappen.

Säkerhetskopiera en databas med kommandot (mysqldump)

Det finns flera backup med kommando, men den här gången kommer vi att säkerhetskopiera med "mysqldump", som har använts länge och är stabil.

Högerklicka på Start-menyn för att starta Terminal (kommandotolken). Observera att det inte är "MySQL 8.0 Command Line Client".

Du kan säkerhetskopiera den med följande kommando:

mysqldump -u <ユーザー名> -p<パスワード> --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 <データベース名> > "<バックアップファイルパス>"

exempel

mysqldump -u backup_user -ppassword --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 test_database > "C:\Temporary\Backup.sql"

  • --default-character-set=utf8 Om du anger samma teckenkod som när du säkerhetskopierar i det grafiska användargränssnittet kommer det att vara samma som när du säkerhetskopierar i det grafiska användargränssnittet. På så sätt kan du också importera den i GUI.
  • Ta inte med ett blanksteg mellan lösenordsfältet och -p lösenordet.
  • Om du även vill mata ut tabellutrymmesinformation --no-tablespaces tar du bort . I så fall måste behörigheterna för den användare som körs vara . PROCESS

En säkerhetskopia skapas på den angivna platsen.

Återställa en databas med kommandot (mysqldump)

Filerna som säkerhetskopieras av mysqldump är i ett format som kan köras i SQL, så allt du behöver göra är att köra mål-SQL. Jag tror att de flesta återställningar görs manuellt, så det är inga problem om du kör det som root-konto.

Om du vill köra den från ett kommando kör du den i kommandotolken i stället för PowerShell. Det beror på att symbolen inte kan användas i < PowerShell.

Kör följande kommando:

mysql -u root -p<root のパスワード> <データベース名> < <バックアップした SQL のファイルパス>

exempel

mysql -u root -ppassword test_database < C:\Temporary\Backup.sql

Automatiserade säkerhetskopieringar av databaser

För Windows är det vanligt att använda Schemaläggaren. Skapa först en kommandofil. Skapa en bat-fil, ange innehållet som det säkerhetskopierades av kommandot och spara det. Teckenkodning sparas med Shift-JIS. Platsen och filnamnet för kommandofilen är godtyckliga.

Registrera dig med Task Scheduler. Högerklicka på Start-menyn och välj Datorhantering.

I menyn till vänster väljer du Datorhantering > Systemverktyg > Schemaläggaren > Schemaläggarens bibliotek. Välj "Skapa uppgift..." i menyn till höger.

Konfigurera fliken Allmänt. "Namn" visas i listan över uppgifter, så ange ett namn som är lätt att förstå. I säkerhetsalternativen markerar du "Kör oavsett om användaren är inloggad eller inte".

På fliken "Trigger" kan du ställa in när säkerhetskopieringen ska utföras. Ställ in denna inställning enligt din operation.

På fliken "Operation" ställer du in den för att starta batchfilen du just skapade.

När du har ställt in var och en, bekräfta med OK-knappen.

Ange ditt lösenord för att registrera dig för att köra under det angivna kontot.

Efter det, kontrollera om säkerhetskopieringen kommer att utföras vid den angivna tidpunkten.