Het regelmatig maken van een databaseback-up is een van de cruciale stappen nadat het project live is gemaakt. De back-upfrequentie kan één keer per dag of week zijn. De dagelijkse back-up heeft de voorkeur voor de toepassingen waarin databasewijzigingen vaker voorkomen. In het geval van databases met hoge beschikbaarheid, moet een geschikte clusterconfiguratie worden overwogen in plaats van verticale schaling. Deze tutorial legt het gebruik uit van de
Opmerkingen :Deze tutorial behandelt alleen de meest voorkomende opties die worden gebruikt met de
Lokale back-up
Back-up - In dit gedeelte wordt uitgelegd hoe u een lokale back-up in een bestand kunt maken door één of meerdere databases te exporteren.
Machtigingen -
- SELECT - om tabellen te dumpen
- WEERGAVE TONEN - om weergaven te dumpen
- TRIGGER - om triggers te dumpen
- VERGRENDEL TABELLEN - in het geval dat de optie --single-transactie niet wordt gebruikt
Opdracht - Hieronder staat het gebruik van
# 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>
De voorbeelden om het reguliere commando te gebruiken zijn zoals hieronder vermeld. Deze voorbeeldopdrachten gebruiken de gebruiker enterprise om back-ups te maken van de database enterprise . Het is niet nodig om een gebruiker en wachtwoord op te geven als het gebruikersaccount auth_socket gebruikt algoritme om in te loggen op de MySQL-server. De systeemgebruiker heeft direct toegang tot de database. U kunt verwijzen naar Hoe u een native wachtwoord gebruikt met MySQL 5.7 en hoe u MySQL 8 op Ubuntu installeert voor meer informatie over wachtwoordalgoritmen.
Opmerkingen :Het is niet nodig om de optie -p te gebruiken als er geen wachtwoord aan de gebruiker is toegewezen.
Hieronder staan de voorbeelden om een back-up te maken van een enkele database met gebruikersnaam, host en poort. Het wachtwoord mag niet worden opgegeven met deze commando's voor veiligheidsdoeleinden. U kunt het wachtwoord opgeven voor
# 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
Hieronder staan de voorbeelden om een back-up te maken van meerdere databases met gebruikersnaam, host en poort.
# 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
Hieronder staat het voorbeeld om een back-up te maken van alle databases met gebruikersnaam, host en poort.
# 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
De PowerShell-gebruikers op Windows hebben een ander commando nodig, zoals hieronder vermeld.
# 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 bovengenoemde opdrachten zullen de geselecteerde database en tabellen exporteren naar de bestandslocatie die in de opdracht is gespecificeerd.
Databaseback-up
In dit gedeelte wordt uitgelegd hoe u de databaseback-up kunt maken naar een andere database die voor back-updoeleinden wordt gebruikt met behulp van de Shell Pipes. We kunnen de database naar het lokale bestand exporteren en dit bestand vervolgens gebruiken om naar een andere database te importeren of rechtstreeks naar een andere database exporteren met behulp van shell-pipes.
De onderstaande opdracht kan worden gebruikt om de database rechtstreeks naar een andere database te exporteren. Zorg er ook voor dat u toegang hebt tot beide servers voordat u de opdracht uitvoert.
# 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
Dit is hoe we een database kunnen exporteren of back-uppen.