sql >> Databasteknik >  >> RDS >> Mysql

Exportera MySQL eller MariaDB-databas

Att regelbundet ta säkerhetskopiering av databasen är ett av de avgörande stegen efter att projektet har gjorts live. Säkerhetskopieringsfrekvensen kan vara antingen en gång om dagen eller veckan. Den dagliga säkerhetskopieringen är att föredra för de applikationer där databasändringar är vanligare. I fallet med databaser med hög tillgänglighet måste lämplig klusterinställning övervägas istället för vertikal skalning. Den här handledningen förklarar användningen av mysqldump kommandot för att ta säkerhetskopian av databasen. Samma kommando kan automatiseras för att ta schemalagda säkerhetskopior.

Anteckningar :Denna handledning täcker endast de vanligaste alternativen som används med mysqldump kommando. Du kan också hänvisa till den officiella dokumentationen för att utforska alla möjliga alternativ. Samma kommandon kan användas för att ta backup av både MySQL- och MariaDB-databasservrar.

Lokal säkerhetskopiering

Säkerhetskopiering - Det här avsnittet förklarar hur du tar lokal säkerhetskopiering i en fil genom att exportera antingen enstaka eller flera databaser.

Behörigheter - mysqldump kräver nedan angivna behörigheter för att exportera databasen. Lämpliga privilegier måste tilldelas användarkontot som används för att exportera databasen.

  • VÄLJ - för att dumpa tabeller
  • VISA VY – för att dumpa vyer
  • TRIGGER – för att dumpa triggers
  • LÅS TABELLER - om --single-transaction alternativet inte används

Kommando - Nedan nämns användningen av mysqldump kommando för att ta lokal säkerhetskopiering för både Windows- och Linuxbaserade system inklusive Ubuntu. De tre punkterna betyder att flera värden kan tillhandahållas.

# 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>

Exemplen på att använda det vanliga kommandot är som nämns nedan. Dessa exempelkommandon använder användaren enterprise för att ta säkerhetskopior av databasen företag . Det finns ingen anledning att ange användare och lösenord om användarkontot använder auth_socket algoritm för att logga in på MySQL-servern. Systemanvändaren har direkt tillgång till databasen. Du kan se hur man använder inbyggt lösenord med MySQL 5.7 och hur man installerar MySQL 8 på Ubuntu för att lära dig mer om lösenordsalgoritmer.

Anteckningar :Det finns inget behov av att använda alternativet -p, om inget lösenord har tilldelats användaren.

Nedan nämns exemplen för att säkerhetskopiera en enda databas med användarnamn, värd och port. Lösenordet får inte anges med dessa kommandon i säkerhetssyfte. Du kan ange lösenordet för mysqldump i konfigurationsfilen som anses vara ett säkert alternativ för cron jobb. Ett annat alternativ är att använda cat-kommandot för att använda ett krypterat lösenord (liknande hur Plesk använder) som visas i exemplen. Systemet kommer att fråga efter lösenord om det inte finns i kommandot. Dessa kommandon kan användas för att antingen exportera hela databasen eller enstaka eller flera 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

Nedan nämns exemplen för att säkerhetskopiera flera databaser med användarnamn, värd och 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

Nedan nämns exemplet för att säkerhetskopiera alla databaser med användarnamn, värd och 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-användarna på Windows kommer att behöva olika kommandon som nämns nedan.

# 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 ovan nämnda kommandona kommer att exportera den valda databasen och tabellerna till den filplats som anges i kommandot.

Databassäkerhetskopiering

Det här avsnittet förklarar hur du tar säkerhetskopian av databasen till en annan databas som används för säkerhetskopiering med hjälp av Shell Pipes. Vi kan antingen exportera databasen till den lokala filen och sedan använda den här filen för att importera till en annan databas eller direkt exportera till en annan databas med hjälp av skalpipor.

Kommandot nedan kan användas för att exportera databasen direkt till en annan databas. Se också till att du har tillgång till båda servrarna innan du kör kommandot.

# 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å här kan vi exportera eller säkerhetskopiera en databas.


  1. Hur LÅT SOM fungerar i MariaDB

  2. SQL Server 2016:Skapa en databas

  3. Oracle:LONG eller CLOB?

  4. Skripta hela databasen SQL-Server