Sikkerhedskopiering og gendannelse af MySQL-databaser til Windows
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:
tilBemærkninger | sikkerhedskopieringskommando | 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 fraPROCESS
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.