← 返回命令列表

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.