sql >> Database teknologi >  >> RDS >> Mysql

Eksporter MySQL eller MariaDB-database

Regelmæssig backup af databasen er et af de afgørende trin efter at have gjort projektet live. Sikkerhedskopieringsfrekvensen kan enten være én gang om dagen eller ugen. Den daglige backup foretrækkes til de applikationer, hvor databaseændringer er hyppigere. I tilfælde af højtilgængelige databaser skal passende klyngeopsætning overvejes i stedet for vertikal skalering. Denne vejledning forklarer brugen af ​​mysqldump kommando for at tage databasens backup. Den samme kommando kan automatiseres til at tage planlagte sikkerhedskopier.

Noter :Denne vejledning dækker kun de mest almindelige muligheder, der bruges med mysqldump kommando. Du kan også henvise til den officielle dokumentation for at udforske alle de mulige muligheder. De samme kommandoer kan bruges til at tage backup af både MySQL- og MariaDB-databaseservere.

Lokal sikkerhedskopiering

Sikkerhedskopi - Dette afsnit forklarer at tage lokal backup i en fil ved at eksportere enten enkelte eller flere databaser.

Tilladelser - mysqldump kræver nedenstående privilegier for at eksportere databasen. Passende rettigheder skal tildeles til den brugerkonto, der bruges til at eksportere databasen.

  • VÆLG - for at dumpe tabeller
  • VIS VISNING – for at dumpe visninger
  • TRIGGER - for at dumpe triggere
  • LÅS TABELLER - hvis --single-transaction option ikke bruges

Kommando - Nedenfor nævnt er brugen af ​​mysqldump kommando til at tage lokal sikkerhedskopiering til både Windows- og Linux-baserede systemer inklusive Ubuntu. De tredobbelte prikker betyder, at flere værdier kan angives.

# Regular command - Usage - Windows, Linux
mysqldump [options] db_name [tbl_name ...] > <file path>
mysqldump [options] --databases db_name ... > <file path>
mysqldump [options] --all-databases > <file path>

Eksemplerne på at bruge den almindelige kommando er som nævnt nedenfor. Disse eksempelkommandoer bruger brugeren enterprise at tage sikkerhedskopier af databasen enterprise . Der er ingen grund til at angive bruger og adgangskode, hvis brugerkontoen bruger auth_socket algoritme til at logge ind på MySQL-serveren. Systembrugeren kan få direkte adgang til databasen. Du kan se Sådan bruger du indbygget adgangskode med MySQL 5.7 og Sådan installeres MySQL 8 på Ubuntu for at lære mere om adgangskodealgoritmer.

Noter :Der er ingen grund til at bruge indstillingen -p, hvis der ikke er tildelt nogen adgangskode til brugeren.

Nedenfor nævnt er eksemplerne på sikkerhedskopiering af en enkelt database med brugernavn, vært og port. Adgangskoden må ikke angives med disse kommandoer af sikkerhedsmæssige årsager. Du kan angive adgangskoden til mysqldump i konfigurationsfilen, der betragtes som en sikker mulighed for cron job. En anden mulighed er at bruge kat-kommandoen til at bruge en krypteret adgangskode (svarende til hvordan Plesk bruger) som vist i eksemplerne. Systemet vil bede om adgangskode, hvis det ikke er angivet i kommandoen. Disse kommandoer kan bruges til enten at eksportere hele databasen eller enkelte eller flere tabeller.

# All tables - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise > enterprise.sql

# All tables - with username, with password - insecure
mysqldump -u enterprise -p'mypwd' enterprise > enterprise.sql

# All tables - with username, with password - Plesk way
mysqldump -u enterprise -p`cat /etc/psa/.psa.shadow` dbname > dbname.sql

# All tables - with host, with port, with username, without password - prompts for password
mysqldump -h localhost -p 3306 -u enterprise -p enterprise > enterprise.sql

# Single table(user) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise [user] > enterprise.sql

# Multiple tables(user, profile) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise user profile > enterprise.sql

Nedenfor er eksemplerne på sikkerhedskopiering af flere databaser med brugernavn, vært og port.

# Multiple databases - with username, without password - prompts for password
mysqldump -u enterprise -p --databases enterprise vblog mshop > mydbs.sql

# Multiple databases - with username, with password
mysqldump -u enterprise -p'mypwd' --databases enterprise vblog mshop > mydbs.sql

Nedenfor nævnt er eksemplet til at sikkerhedskopiere alle databaser med brugernavn, vært og port.

# All databases - with username, without password - prompts for password
mysqldump -u enterprise -p --all-databases > mydbs.sql

# All databases - with username, with password
mysqldump -u enterprise -p'mypwd' --all-databases > mydbs.sql

PowerShell-brugerne på Windows skal bruge en anden kommando som nævnt nedenfor.

# PowerShell on Windows
shell> mysqldump [options] db_name [tbl_name ...] --result-file=<file path>
shell> mysqldump [options] --databases db_name ... --result-file=<file path>
shell> mysqldump [options] --all-databases --result-file=<file path>

# Example
shell> mysqldump -u enterprise -p enterprise --result-file=mydump.sql

De ovennævnte kommandoer eksporterer den valgte database og tabeller til den filplacering, der er angivet i kommandoen.

Sikkerhedskopiering af database

Dette afsnit forklarer at tage databasesikkerhedskopien til en anden database, der bruges til sikkerhedskopiering ved hjælp af Shell Pipes. Vi kan enten eksportere databasen til den lokale fil og derefter bruge denne fil til at importere til en anden database eller direkte eksportere til en anden database ved hjælp af shell-pipes.

Den nedenstående kommando kan bruges til at eksportere databasen direkte til en anden database. Sørg også for, at du har adgang til begge servere, før du udfører kommandoen.

# Export database to another database - Same server
mysqldump -u enterprise -p enterprise | mysql enterprise_backup

# Export database to another database - Different server
mysqldump -u enterprise -p enterprise | mysql -h host.example.com -p 3306 enterprise

Sådan kan vi eksportere eller sikkerhedskopiere en database.


  1. PostgreSQL FORKLAR – Hvad er forespørgselsomkostningerne?

  2. Sådan opretter du PL/SQL-funktion i Oracle-databasen

  3. deaktiver BEMÆRKNINGER i psql-output

  4. Sådan deaktiveres plugins fra WordPress-databasen