Linux command
mysqldump 命令
文件
涉及管道、覆盖或删除,执行前请先确认路径和参数。
常用示例
Dump database
mysqldump -u [user] -p [database] > [backup.sql]
Dump specific tables
mysqldump -u [user] -p [database] [table1] [table2] > [backup.sql]
Dump all databases
mysqldump -u [user] -p --all-databases > [all.sql]
Dump with compression
mysqldump -u [user] -p [database] | gzip > [backup.sql.gz]
Dump structure only
mysqldump -u [user] -p --no-data [database] > [schema.sql]
Dump data only
mysqldump -u [user] -p --no-create-info [database] > [data.sql]
Dump with routines and triggers
mysqldump -u [user] -p --routines --triggers [database] > [backup.sql]
Dump for replication
mysqldump -u [user] -p --single-transaction --master-data [database] > [backup.sql]
说明
mysqldump creates logical backups of MySQL databases. Output is SQL statements that can recreate the database structure and data when executed. The --single-transaction option provides consistent backups for InnoDB tables without locking. It starts a transaction and dumps data at that point in time, allowing other operations to continue. For MyISAM or mixed storage engines, --lock-tables prevents writes during dump. This ensures consistency but blocks writes. Routines (stored procedures, functions) and events are not included by default. Use --routines and --events explicitly to back up these objects. The --master-data option records binary log coordinates, essential for setting up replication slaves or point-in-time recovery. Output is plain SQL text, easily compressed with gzip. For very large databases, consider mysqlpump (parallel) or physical backup tools like Percona XtraBackup.
参数
- -u _USER_, --user _USER_
- MySQL username.
- -p_PASSWORD_, --password=_PASS_
- Prompt for or specify password.
- -h _HOST_, --host _HOST_
- Server hostname.
- -P _PORT_, --port _PORT_
- Server port.
- --all-databases, -A
- Dump all databases.
- --databases, -B
- Dump multiple named databases.
- --no-data, -d
- Don't dump table data.
- --no-create-info, -t
- Don't dump CREATE TABLE.
- --single-transaction
- Consistent snapshot for InnoDB.
- --routines, -R
- Include stored procedures/functions.
- --triggers
- Include triggers (default on).
- --events, -E
- Include events.
- --add-drop-table
- Add DROP TABLE before CREATE.
- --add-drop-database
- Add DROP DATABASE before CREATE.
- --master-data=_VALUE_
- Include binary log position.
- --quick, -q
- Don't buffer, write directly.
- --lock-tables, -l
- Lock tables during dump.
FAQ
What is the mysqldump command used for?
mysqldump creates logical backups of MySQL databases. Output is SQL statements that can recreate the database structure and data when executed. The --single-transaction option provides consistent backups for InnoDB tables without locking. It starts a transaction and dumps data at that point in time, allowing other operations to continue. For MyISAM or mixed storage engines, --lock-tables prevents writes during dump. This ensures consistency but blocks writes. Routines (stored procedures, functions) and events are not included by default. Use --routines and --events explicitly to back up these objects. The --master-data option records binary log coordinates, essential for setting up replication slaves or point-in-time recovery. Output is plain SQL text, easily compressed with gzip. For very large databases, consider mysqlpump (parallel) or physical backup tools like Percona XtraBackup.
How do I run a basic mysqldump example?
Run `mysqldump -u [user] -p [database] > [backup.sql]` in a terminal, then adjust file names, paths, flags, or remote targets for your system.
What does -u _USER_, --user _USER_ do in mysqldump?
MySQL username.