mysql 客户端恢复是什么
用 mysql 客户端把 SQL 备份逐条回放回实例,是最常见的逻辑恢复方式。它既能整库导入,也能按库或按表片段恢复,适合误删后只修局部数据的场景。恢复速度受 SQL 回放能力限制,大文件恢复前通常需要调整会话参数并确认字符集一致。
基本信息
| 整库恢复 | mysql 加输入重定向,或在交互模式内用 source |
|---|---|
| 单库恢复 | 指定库名后回放,产物必须不含建库语句 |
| 单表恢复 | 从产物中截取目标表语句单独回放 |
| 提速手段 | 会话内临时关闭外键与唯一性检查 |
| 前置检查 | 目标实例的字符集、排序规则与源保持一致 |
恢复示例
恢复示例
# 先建库再回放
mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS appdb DEFAULT CHARACTER SET utf8mb4"
mysql -u root -p appdb < /backup/appdb-2026-10-12.sql
# 交互模式内可用 source
mysql -u root -p
mysql> source /backup/appdb-2026-10-12.sql;恢复方式对照
| 方式 | 命令形态 | 适用 |
|---|---|---|
| 整实例 | 回放全量产物 | 环境重建与灾难恢复 |
| 单库 | 指定库名后回放 | 单库误删或迁移 |
| 单表 | 截取表相关语句 | 局部数据修复 |
| 增量补齐 | 配合日志回放到指定时刻 | 需要回到特定时间点 |
恢复与核对要点
- 恢复前对现有数据留底:恢复失败时至少还有回退路径,避免两头落空
- 确认字符集与排序规则:不一致会造成乱码或唯一键冲突
- 分阶段验证:先看是否报错,再核对表数量,最后核对关键表行数
- 业务抽检:对最近的订单、账务等业务数据做抽样比对,确认数据正确
- 保留恢复日志:错误输出重定向到文件,便于事后复盘中断原因
用 --force 忽略错误继续执行会得到半成品库;恢复脚本应默认遇错停下并检查退出码,再决定是否重试。
恢复前确认目标实例的字符集、排序规则与源一致,不匹配可能报错或写入异常字符,这类问题在导入大文件时往往到中途才暴露。