Skip to main content

任务二 使用MySQLDUMP备份

一、MYSQLDUMP工具的核心概述

1. 基本定义

MYSQLDUMP是MySQL官方提供的逻辑备份工具,采用SQL级别的备份机制,将数据表导出为包含CREATE(建表)和INSERT(插入数据)语句的SQL脚本文件。

2. 关键特点

  • 跨版本友好:不同MySQL版本升级时使用该工具备份适配性较好,是最常用的备份方法。
  • 执行方式:在Windows控制台的命令行窗口中执行,文件存放在MySQL安装目录的bin文件夹下,无需登录MySQL数据库即可直接运行
  • 备份灵活性:支持备份单个数据库、多个数据库、所有数据库,或数据库中的单个/多个表。

二、MYSQLDUMP常用选项

MYSQLDUMP提供了丰富的参数,可通过MYSQLDUMP--help查看完整列表,以下是核心常用选项:

选项功能说明
--all-databases备份服务器上的所有数据库
--databases dbname备份指定的单个/多个数据库(多个库名用空格分隔)。
--lock-tables锁定当前备份的表,保证备份一致性。
--lock-all-tables锁定所有数据库的所有表。
--no-data仅备份表结构(DDL语句),不备份数据。
--single-transaction实现热备份(InnoDB引擎适用),备份时不锁表,保证事务一致性。
--routines备份存储过程和存储函数。
--triggers备份触发器。
--master-data=n备份时导出二进制日志位置,n=1生成CHANGE MASTER语句,n=2生成注释掉的该语句(用于主从复制场景)。

三、核心备份场景与语法

1. 备份一个完整的数据库

MYSQLDUMP -u用户名 -h主机名 -p[密码] [--databases] 数据库名 > 备份文件名.sql
  • 语法说明
    • -p后可直接写密码(无空格),或留空后续交互输入。
    • 若不加--databases参数,备份文件中不包含CREATE DATABASE语句,还原时需先手动创建目标数据库。
    • 若添加--databases,备份文件会包含创建数据库的语句,还原时可直接执行脚本。

2. 备份多个数据库

MYSQLDUMP -u用户名 -h主机名 -p[密码] --databases 数据库名1 数据库名2 … > 备份文件名.sql
  • 需通过--databases指定多个库名,备份文件包含所有指定库的创建和数据插入语句。

3. 备份所有数据库

MYSQLDUMP -u用户名 -h主机名 -p[密码] --all-databases > 备份文件名.sql
  • 备份文件包含所有数据库的CREATE DATABASEUSE语句,还原时无需提前创建数据库。

4. 备份数据库中的一个或多个表

MYSQLDUMP -u用户名 -h主机名 -p[密码] 数据库名 表名1 [表名2…] > 备份文件名.sql
  • 直接指定“库名+表名”,仅备份目标表的结构和数据。

四、典型示例

示例1:备份单个库的指定表

备份student库的ScoreCourse表,保存到D盘根目录:

MYSQLDUMP -uroot -hlocalhost -p student Score Course > D:\stuDB_sql
  • 备份文件包含两张表的CREATE TABLEINSERT语句。

示例2:备份多个数据库

备份studentbook两个库,保存到D盘根目录:

MYSQLDUMP -uroot -hlocalhost -p --databases student book > D:\db.sql
  • 备份文件包含两个数据库的创建语句及所有表的结构和数据。

示例3:备份所有数据库

备份服务器上所有数据库,保存到D盘根目录:

MYSQLDUMP -uroot -hlocalhost -p --all-databases > D:\alldb.sql
  • 备份文件包含所有数据库的完整创建和数据插入语句。