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
Anteckningar :Denna handledning täcker endast de vanligaste alternativen som används med
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 -
- 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
# 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
# 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.