- 1 1. Co je mysqldump? — Základy a hlavní případy použití —
- 2 2. Základní použití: Vytvoření zálohy pomocí mysqldump
- 3 3. Metoda obnovy: Import záložního souboru do MySQL
- 4 4. Pokročilé použití: Flexibilní způsoby využití mysqldump
- 5 5. Nejlepší postupy pro používání mysqldump
- 6 6. Summary: Best Practices for Data Protection with mysqldump
1. Co je mysqldump? — Základy a hlavní případy použití —
mysqldump je nástroj příkazové řádky používaný k exportu databází MySQL v textovém formátu. Exportovaný soubor je uložen ve formátu SQL, což umožňuje obnovit původní databázi jeho importem během procesu obnovy.
Hlavní případy použití mysqldump
| Purpose | Description |
|---|---|
| Database Backup | Used to perform regular backups to prepare for potential data loss risks. |
| Database Migration Between Servers | When migrating to another server, you can use the mysqldump export file to transfer data smoothly. |
| Backup of Specific Tables | Allows you to back up only specific tables instead of the entire database. |
2. Základní použití: Vytvoření zálohy pomocí mysqldump
Nejprve si projděme, jak vytvořit zálohu databáze pomocí mysqldump. Níže jsou uvedeny běžné metody zálohování a často používané volby.
Zálohování jedné databáze
Toto je základní příkaz pro zálohování konkrétní databáze.
mysqldump -u [username] -p [database_name] > [output_file_name].sql
Příklad: Zálohování my_database a uložení jako my_database_backup.sql
mysqldump -u root -p my_database > my_database_backup.sql
Poznámka: Po spuštění příkazu budete vyzváni k zadání hesla. Jakmile zadáte správné heslo, proces zálohování začne.
Zálohování více databází
Pro zálohování více databází najednou použijte volbu --databases.
mysqldump -u root -p --databases database1 database2 > multi_database_backup.sql
Zálohování všech databází
Pro zálohování všech databází na serveru MySQL použijte volbu --all-databases.
mysqldump -u root -p --all-databases > all_databases_backup.sql
Často používané volby mysqldump
| Option | Description |
|---|---|
--single-transaction | Creates a backup while maintaining transactional consistency in InnoDB (not recommended for MyISAM). |
--quick | Retrieves data row by row to reduce memory usage. |
--routines | Includes stored procedures and functions in the backup. |
--triggers | Includes triggers in the backup. |

3. Metoda obnovy: Import záložního souboru do MySQL
Tato sekce vysvětluje, jak obnovit databázi pomocí záložního souboru vytvořeného pomocí mysqldump.
Obnovení jedné databáze
Použijte následující příkaz k obnovení záložního souboru do existující databáze.
mysql -u [username] -p [database_name] < [backup_file_name].sql
Příklad: Obnovení my_database_backup.sql do my_database
mysql -u root -p my_database < my_database_backup.sql
Jak ověřit: Po dokončení obnovení se přihlaste do MySQL a ověřte, že tabulky v databázi byly správně obnoveny.
Obnovení více databází
Pokud záložní soubor obsahuje více databází, použijte následující příkaz:
mysql -u root -p < multi_database_backup.sql
Časté chyby při obnově a řešení
| Error | Solution |
|---|---|
| Database Already Exists Error | Remove the CREATE DATABASE statement from the export file or delete the existing database before restoring. |
| Insufficient Privileges Error | Operate with MySQL administrative privileges and ensure the user has proper access permissions. |
| File Size Error | Increase the max_allowed_packet size in the MySQL configuration file and restart the server. |
| Character Encoding Error | Specify the same character set during export and import (e.g., --default-character-set=utf8). |
4. Pokročilé použití: Flexibilní způsoby využití mysqldump
mysqldump umožňuje flexibilní možnosti exportu, například export pouze konkrétních tabulek, pouze dat nebo pouze schématu.
Zálohování konkrétní tabulky
Pro zálohování pouze konkrétní tabulky uveďte název tabulky, jak je uvedeno níže:
mysqldump -u root -p my_database my_table > my_table_backup.sql
Zálohování pouze dat nebo pouze schématu
- Pouze data : Použijte volbu
--no-create-infok exportu pouze dat bez schématu (struktury).mysqldump -u root -p --no-create-info my_database > my_database_data_only.sql
- Pouze schéma : Použijte volbu
--no-datak exportu pouze schématu bez dat.mysqldump -u root -p --no-data my_database > my_database_schema_only.sql
Zálohování a obnovení s kompresí
U rozsáhlých databází je výhodné komprimovat zálohy při jejich ukládání.
- Komprimovaná záloha
mysqldump -u root -p my_database | gzip > my_database_backup.sql.gz
- Obnovení z komprimovaného souboru
gunzip < my_database_backup.sql.gz | mysql -u root -p my_database

5. Nejlepší postupy pro používání mysqldump
Zde jsou nejlepší postupy pro efektivní a bezpečné používání mysqldump.
Zajištění konzistence dat (–single-transaction)
Při použití InnoDB volba --single-transaction pomáhá udržet konzistenci dat během zálohování.
mysqldump -u root -p --single-transaction my_database > my_database_backup.sql
Poznámka: Tato volba předpokládá použití InnoDB. Není doporučena pro MyISAM, protože konzistence dat není zaručena.
Snížení využití paměti (–quick)
When handling large datasets, the --quick option reduces memory usage by reading data row by row, making it effective for large database backups.
mysqldump -u root -p --quick my_database > my_database_backup.sql
Automating Regular Backups
Backups using mysqldump can be automated by setting up a cron job. The example below creates a backup every day at 2:00 AM and saves it in compressed format.
0 2 * * * mysqldump -u root -p[password] my_database | gzip > /path/to/backup/my_database_$(date +\%Y\%m\%d).sql.gz
Important: Pay careful attention to password security. Whenever possible, use a MySQL configuration file to manage credentials securely.
Regular Backup Verification
It is important to regularly verify that backup files can be restored successfully. Confirming restore capability in advance ensures faster recovery in case of system failure.
6. Summary: Best Practices for Data Protection with mysqldump
mysqldump is a powerful tool for efficiently and securely backing up and restoring MySQL databases. By leveraging mysqldump, you can maintain data consistency and minimize the risk of system failures and data loss.
Key Takeaways
- Overview and Use Cases of mysqldump : mysqldump is versatile and highly useful for MySQL database backup and migration.
- Basic Backup and Restore Methods : Understand procedures for single and multiple databases, as well as specific tables.
- Advanced Usage : Support for data-only export, schema-only export, and compressed backups provides flexibility for various needs.
- Best Practices : Maintaining consistency, configuring automated backups, and verifying backup integrity are essential.
By using mysqldump appropriately, you can improve the reliability of your MySQL databases and strengthen your data protection strategy. Use this guide to implement robust and dependable database backups.


