Skip to main content

任务三 MySQL数据恢复

一、数据恢复的核心概念

1. 定义与本质

MySQL数据恢复是指当数据库数据遭破坏时,通过执行备份的SQL脚本文件,将数据还原到备份时状态的过程。

  • 注意:恢复的是数据内容,数据库的“库”本身无法被自动恢复,若备份脚本中不含建库语句,需提前手动创建目标数据库。
  • 本质:执行备份脚本中的CREATE(建表)、INSERT(插入数据)等语句,重建表结构并导入数据。

二、核心恢复方法

1. 使用 MYSQL 命令还原数据

(1)语法格式

MYSQL -u用户名 -p[密码] [数据库名] < 备份文件名.sql

(2)关键说明

  • 数据库名是可选项:
    • 若备份脚本包含CREATE DATABASE语句,可省略该参数;
    • 若备份脚本不含建库语句,必须指定已存在的数据库名,否则还原失败。
  • 备份文件名可添加绝对路径(如D:\stuDB_sql),确保系统能正确找到文件。

(3)操作步骤(以示例12-4为例)

  1. 提前创建目标数据库(若脚本不含建库语句):
    mysql > CREATE DATABASE student2;
  2. 在**Windows系统命令行(控制台)**执行还原命令:
    mysql -uroot -p student2 < D:\stuDB_sql
  3. 效果:脚本中的SQL语句自动执行,在student2库中恢复Score表和Course表。

2. 使用 SOURCE 命令还原数据

(1)核心特点

MYSQL命令的主要区别:SOURCE命令必须在**MySQL控制台(登录后)**执行,属于交互式恢复方式。

(2)操作步骤

  1. mysql命令连接数据库,进入MySQL控制台。
  2. 创建目标数据库(若脚本不含建库语句)。
  3. 切换到目标数据库:
    mysql > USE 数据库名;
  4. 执行恢复命令:
    mysql > SOURCE 备份文件名.sql;

(3)示例(以示例12-5为例)

  1. 创建目标库:
    mysql > CREATE DATABASE student3;
  2. 切换到目标库:
    mysql > USE student3;
  3. 执行恢复:
    mysql > SOURCE D:\stuDB_sql;
  4. 效果:与MYSQL命令还原结果一致,在student3库中恢复目标表和数据。

三、两种恢复方法对比

恢复方法执行环境适用场景核心优势
MYSQL命令系统命令行(Windows控制台)批量恢复、脚本化自动化恢复无需登录MySQL,适合运维脚本集成
SOURCE命令MySQL控制台(需登录)交互式恢复、临时手动恢复操作直观,可在数据库会话中直接执行

四、关键注意事项

  1. 提前创建目标库:若备份脚本不含CREATE DATABASE语句,两种方法都需要先手动创建目标数据库,否则还原失败。
  2. 路径正确性:备份文件的路径建议使用绝对路径(如D:\stuDB_sql),避免因相对路径错误导致无法找到文件。
  3. 权限验证:执行还原的用户需具备目标数据库的创建、表操作等权限。