Sikkerhedskopiering og gendannelse af MySQL-databaser til Windows

Dato for oprettelse af side :

Miljø til bekræftelse af handling

MySQL
  • MySQL 8.0 Community Edition
Windows
  • Windows 11

Påkrævet miljø

MySQL
  • MySQL 8.0
Windows
  • Windows 11
  • Windows 10
Windows Server
  • Windows Server 2022
  • Windows Server 2019
  • Windows Server 2016
  • Windows Server 2012 R2

forudsætning

  • MySQL-databasen skal være installeret
  • Den database, der skal sikkerhedskopieres, findes allerede
  • Konfigurer miljøvariabler, og tillad dig at køre MySQL fra kommandoprompten

Om sikkerhedskopieringstyper

Jeg vil ikke gå i detaljer her, men MySQL har følgende typer sikkerhedskopier:

til
Bemærkningersikkerhedskopieringskommando Backup-datatype
mysqldump Logisk backup En gammel backup-metode. GUI'en bruger også dette
mysqlpump Logisk backup Forbedret version af mysqldump
MySQL Shell Instance Dump Utility og Dump Loading Utility Logisk backup Som en logisk backup er det det seneste i øjeblikket
Percona XtraBackup Fysisk backup Tredjepartsprodukter, der giver mulighed for fysisk backup
KLON PLUGIN Fysisk backup MySQL officiel fysisk backup. Der kræves dog yderligere plugins

Sikkerhedskopiering af en database med en GUI (MySQL Workbench)

Hvis du vil fungere sikkert i GUI'en uden at bruge kommandoer, kan du udføre en backup i MySQL Workbench. Den backuptype, der udføres i MySQL Workbench, er "mysqldump".

Start MySQL Workbench.

Vælg forbindelsen til den database, du vil sikkerhedskopiere.

Når databasen skal sikkerhedskopieres, skal du vælge fanen Administration fra Navigator til venstre og vælge Dataeksport.

Skærmbilledet Dataeksport åbnes. Skærmen er ret stor, så udvid vinduet, indtil du ser knappen "Start eksport" i nederste højre hjørne.

Vælg først den database, du vil sikkerhedskopiere. Du kan også vælge mere end én.

I "Objekter, der skal eksporteres" kan du vælge, om du også vil sikkerhedskopiere procedurer, triggere osv. Dette punkt er valgfrit.

I "Eksportindstillinger" kan du vælge mellem følgende to muligheder:

Beskrivelse af typer
Eksporter til dump-projektmappe Udskriv som en tabel eller procedure-for-procedure-fil i en given mappe.
Eksporter til selvstændig fil Integrer alt i en enkelt fil, og udskriv det.

Det er lige meget, hvilken du udsender. Hvis du vælger ovenfor, er det nemt, fordi du nemt kan fjerne det, hvis du kun vil gendanne et bestemt bord. Følgende valg udskrives til en enkelt fil, hvilket gør det nemmere at flytte og administrere filer som en databaseenhed. Denne gang har jeg valgt følgende.

Når den er konfigureret, skal du klikke på Start Export knappen nederst til højre for at begynde at eksportere.

Eksporten starter og afsluttes.

Hvis du udsender i en enkelt fil, vil det se sådan ud:

Hvis du eksporterer til en mappe, vil den se sådan ud:

Gendannelse af en database med en GUI (MySQL Workbench)

Åbn MySQL Workbench, vælg dine forbindelser, vælg fanen Administration fra Navigator til venstre, og vælg Dataimport/gendannelse. Da der står "Importer/Gendan", kan du oprette en ny database fra den eksporterede fil eller overskrive den originale database.

Udvid vinduet, indtil du ser knappen "Start import" i nederste højre hjørne.

Vælg "Importindstillinger" i henhold til det eksporterede filformat. Da jeg eksporterede den som en enkelt fil denne gang, har jeg valgt "Importer fra selvstændig fil" nedenfor og angivet den eksporterede fil.

Vælg det skema (database), der skal gendannes. Du kan gendanne til en eksisterende database, eller du kan gendanne den som en ny database fra knappen "ny" til højre.

Når du har angivet, skal du klikke på knappen "Start import" i nederste højre hjørne for at starte gendannelsen.

Sørg for, at dine data er tilbage, når gendannelsen er fuldført.

Opret en konto til sikkerhedskopiering af database via kommando

Der er ikke noget problem, hvis du vil køre en kommando for at sikkerhedskopiere en enkelt gang, men hvis du for eksempel forbereder en kommando som en fil på forhånd og kører den, skal du skrive adgangskoden i almindelig tekst, så det er sikrere at oprette en separat konto til at køre sikkerhedskopien.

De tilladelser, der kræves til sikkerhedskopiering, er som følger, men kan øges eller mindskes afhængigt af de nødvendige oplysninger.

  • HÆNDELSE
  • LÅS BORDE
  • MARKERE
  • VIS VISNING

Hvis du opretter den med en kommando, vil den se sådan ud: Kør det med MySQL-kommandolinjeværktøjet.

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

eksempel

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

Mappetilladelser til backupdestination

Tilladelserne til den mappe, hvor sikkerhedskopifilen er gemt, skal angives til samme tilladelse som tilladelsen til at udføre kommandoen. Hvis du vil køre kommandoer med tilladelsen Administratorer, behøver du ikke at angive yderligere tilladelser for mappen.

Sikkerhedskopiering af en database med kommandoen (mysqldump)

Der er flere kommandosikkerhedskopier, men denne gang vil jeg bakke op med den gamle og stabile "mysqldump".

Højreklik på Start-menuen og start Terminal (kommandoprompt). Bemærk venligst, at det ikke er en "MySQL 8.0 Command Line Client".

Du kan sikkerhedskopiere det med følgende kommando:

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

eksempel

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 vil have den samme tegnkode, som når den blev sikkerhedskopieret i GUI'en. Dette giver dig mulighed for også at importere dem til GUI'en.
  • Sæt ikke et mellemrum mellem adgangskodefeltet -p og adgangskoden.
  • Hvis du også vil udskrive oplysninger om bordpladser, --no-tablespaces skal du fjerne markeringen i . I så fald kræves tilladelserne fra PROCESS den udførende bruger.

Der oprettes en sikkerhedskopifil på den angivne placering.

Gendannelse af en database med kommandoen (mysqldump)

De filer, der er sikkerhedskopieret med mysqldump, er i et format, der kan køres i SQL, så du behøver kun at køre mål-SQL. Jeg tror, at gendannelsen ofte udføres manuelt, så det er okay at køre det på root-kontoen.

Hvis du vil køre det fra en kommando, skal du køre det ved kommandoprompten i stedet for PowerShell. Dette skyldes < , at PowerShell ikke tillader symboler.

Kør følgende kommando:

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

eksempel

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

Automatisk sikkerhedskopiering af database

For Windows er det almindeligt at bruge en opgaveplanlægger. Start med at oprette en batchfil. Opret en flagermusfil, indtast indholdet, som det blev sikkerhedskopieret med kommandoer, og gem dem. Gem tegnkoder med Shift-JIS. Placeringen og filnavnet på batchfilen kan være vilkårlig.

Tilmeld dig opgaveplanlæggeren. Højreklik på Start-menuen og vælg "Administrer computer".

I menuen til venstre skal du vælge Computer Management > Systemværktøjer > Task Scheduler > Task Scheduler Library. Vælg Opret opgave i menuen til højre.

Angiv fanen Generelt. "Navnet" vil blive vist i opgavelisten, så sæt et navn, der er let at forstå. I sikkerhedsindstillingerne skal du markere "Kør, om brugeren er logget på eller ej".

Fanen Udløsere angiver, hvornår sikkerhedskopieringen skal udføres. Denne indstilling skal indstilles i henhold til din operation.

På fanen Handlinger skal du indstille den batchfil, du lige har oprettet, til at starte.

Når du har indstillet hver af dem, skal du bekræfte dem med knappen OK.

Indtast din adgangskode for at registrere dig til at køre på den angivne konto.

Kontroller nu, om sikkerhedskopien kører på det angivne tidspunkt.