navicat 还原数据库默认不显示实时日志,需在「还原数据库」对话框底部勾选「输出详细信息」才能看到每条语句执行状态、耗时、影响行数及错误详情。
还原过程不显示实时日志?必须手动开启“输出详细信息”窗口,否则 navicat 默认静默执行,连成功/失败都只靠弹窗提示。
为什么还原时看不到 SQL 执行过程
Navicat 的「还原」功能(右键数据库 → 还原)默认关闭详细输出——它把整个 SQL 文件当做一个原子操作提交,中间语句不回显。你点确定后只能等进度条走完,或弹出一个“成功”/“错误”的简短对话框,根本不知道卡在哪、哪条语句报错、甚至是否真的在执行。
常见错误现象:ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY' 出现在还原中途,但你没看到,结果表结构建了、部分数据插进去了、主键冲突后中断,留下脏数据;又或者还原耗时 12 分钟,你全程干等,无法判断是网络慢、磁盘 IO 高,还是 SQL 本身有死锁。
- 该行为与「执行 SQL 文件」(菜单栏 文件 → 执行 SQL 文件)不同:后者默认打开输出窗口,前者默认隐藏
- 输出内容不是数据库日志(如 MySQL 的
general_log),而是 Navicat 自身解析并执行 SQL 文件时的客户端日志 - Windows/macOS/Linux 全平台逻辑一致,无系统差异
如何开启“输出详细信息”窗口
关键动作就在点击「还原」前的最后一步设置里,不是全局配置,也不在选项菜单中。
- 右键目标数据库 → 选择「还原」→ 弹出「还原数据库」对话框
- 在对话框底部,勾选 「输出详细信息」 复选框(未勾选时该选项常被进度条遮挡,需手动拖动滚动条到底部)
- 点击「开始」后,自动弹出浮动窗口,实时打印每条语句执行状态、耗时、影响行数、错误堆栈
- 该窗口支持复制内容(Ctrl+C)、暂停滚动(右键 → 暂停)、保存为
.log文件(右键 → 保存)
输出窗口里能看到什么、不能看什么
它展示的是 Navicat 客户端视角的执行流水,不是服务端原始日志,因此有明确边界:
- ✅ 能看到:
Executing: CREATE TABLE users...、128 rows affected in 0.142 sec、ERROR 1050 (42S01): Table 'logs' already exists - ✅ 能看到语句执行顺序、跳过注释和空行、识别
DELIMITER切换(对存储过程还原很关键) - ❌ 看不到:MySQL 的
slow_query_log中的执行计划、InnoDB 锁等待详情、服务器内存分配过程 - ❌ 看不到:如果还原文件里含
SOURCE或调用外部脚本,那些子过程不会展开,只显示Executing: SOURCE /path/to/file.sql
容易忽略的三个细节
很多人开了「输出详细信息」却还是觉得“没用”,问题往往出在以下三点:
- 还原中途关闭该窗口 → Navicat 不会自动重开,后续日志直接丢弃,只剩最终结果弹窗
- 还原大文件(>500MB)时,窗口缓冲区默认只保留最近 1000 行 → 报错若发生在开头,可能已被滚动刷掉;需提前右键 → 「清空」再开始,或边跑边复制到外部编辑器
- 勾选了「输出详细信息」但没看到任何输出 → 检查还原文件编码是否为 UTF-8 无 BOM;若含 GBK/BIG5 编码,Navicat 可能解析失败并静默跳过整段,此时窗口里只有空白或乱码提示
真正有用的监控,从来不是等结束才看结果,而是在第一行 SQL 执行时就盯着输出窗口里的时间戳和状态变色——那才是还原操作的呼吸感。别让「成功」弹窗成为你唯一的信息来源。











