如何备份指定数据表_mysql表级备份

来源:这里教程网 时间:2026-02-28 20:46:42 作者:

MySQL 表级备份,就是只导出某一张或几张数据表,而不是整个数据库。最常用、最可靠的方式是使用

mysqldump
工具,它原生支持按表名精确指定备份范围。

用 mysqldump 备份单个或多个表

语法很简单:在数据库名后面直接跟上表名(空格分隔),就能只导出这些表的结构和数据。

备份单张表:
mysqldump -u 用户名 -p 数据库名 表名 > backup_table.sql
备份多张表:
mysqldump -u 用户名 -p 数据库名 表1 表2 表3 > backup_tables.sql
--single-transaction
可避免锁表(适合 InnoDB):
mysqldump -u 用户名 -p --single-transaction 数据库名 表名 > backup.sql
只备份表结构(不含数据),加
-d
参数:
mysqldump -u 用户名 -p -d 数据库名 表名 > schema.sql

只备份数据不包含建表语句

如果只需要纯数据(比如用于迁移或清洗),可用

--no-create-info
跳过 CREATE TABLE 语句,只保留 INSERT。

mysqldump -u 用户名 -p --no-create-info 数据库名 表名 > data_only.sql
配合
--skip-extended-insert
可让每行 INSERT 独立,方便查看或编辑

跳过某些列或按条件导出部分数据

mysqldump 本身不支持字段级过滤,但可通过

--where
实现行级筛选,适用于按时间、状态等条件做增量备份片段。

只导出最近7天的数据:
mysqldump -u 用户名 -p --where="create_time >= DATE_SUB(NOW(), INTERVAL 7 DAY)" 数据库名 表名 > recent.sql
注意:WHERE 条件要写成字符串形式,且字段名需确保存在,否则导出为空

恢复表级备份文件

备份生成的是 SQL 文件,恢复时直接用 mysql 命令执行即可,无需创建表(除非用了

-d
--no-create-info
)。

标准恢复:
mysql -u 用户名 -p 数据库名 
如果目标表已存在且想清空重导,可在备份时加
--add-drop-table
,恢复前自动删表
若只想插入新数据、避免主键冲突,导入前可手动编辑 SQL 文件,把 INSERT 改为 INSERT IGNORE 或 REPLACE INTO

相关推荐