mysqldump 是 MySQL 提供的一个备份工具,用于创建数据库的逻辑备份。备份生成的是 SQL 脚本文件,该文件包含重建数据库所需的 SQL 语句。以下是 mysqldump 的详细用法:
基本语法
mysqldump [options] dbname [tables]
- options:各种选项,定义备份的行为。
- dbname:要备份的数据库名。
- tables:指定备份的表(可选)。
常用选项
- -u:指定用户名。
-u username
- -p:提示输入密码。
-p
- -h:指定 MySQL 主机(默认为 localhost)。
-h hostname
- -P:指定 MySQL 端口(默认为 3306)。
-P port
- --all-databases:备份所有数据库。
--all-databases
- --databases:备份指定数据库(包括创建数据库的 SQL 语句)。
--databases dbname1 dbname2
- --tables:仅备份指定的表(与 --all-databases 配合使用时)。
--tables table1 table2
- --single-transaction:使用事务备份(适用于 InnoDB 存储引擎,能够确保一致性)。
--single-transaction
- --quick:逐行读取表,减少内存消耗。
--quick
- --lock-tables:在备份期间锁定所有表(默认行为,适用于 MyISAM 存储引擎)。
--lock-tables
- --no-data:仅备份数据库结构,不包括数据。
--no-data
- --create-schema:在备份文件中包含 CREATE SCHEMA 语句。
--create-schema
示例
- 备份单个数据库
mysqldump -u username -p dbname > backupfile.sql
- 备份多个数据库
mysqldump -u username -p --databases dbname1 dbname2 > backupfile.sql
- 备份所有数据库
mysqldump -u username -p --all-databases > backupfile.sql
- 备份指定表
mysqldump -u username -p dbname table1 table2 > backupfile.sql
- 备份数据结构
mysqldump -u username -p --no-data dbname > backupfile.sql
- 使用事务备份
mysqldump -u username -p --single-transaction dbname > backupfile.sql
- 压缩备份
mysqldump -u username -p dbname | gzip > backupfile.sql.gz
恢复数据库
将备份文件恢复到数据库中,可以使用 mysql 命令:
mysql -u username -p dbname < backupfile.sql
参考文档
要获取 mysqldump 的更多选项和详细信息,可以参考 MySQL 官方文档。