Navicat历史日志默认启用但需手动打开(Ctrl+H/Cmd+H),记录执行语句、时间、耗时、状态,支持筛选、导出与双击重执行;不记录自动生成语句,编辑器无执行历史缓存。
历史日志功能默认开启,但必须手动打开窗口才能看到
navicat 的 sql 执行记录不是“自动弹出”或“保存在编辑器里”的——它存在,但藏在独立的历史日志窗口中。很多人以为没记录,其实是没点开那个窗口。
关键操作就一步:Ctrl+H(Windows)或 Cmd+H(Mac),或者顶部菜单 工具 → 历史日志。窗口一出来,所有近期执行过的语句都在里面,按时间倒序排列,带数据库名、执行时间、耗时、状态(成功/失败)。
- 默认启用,无需额外设置;如果看不到记录,大概率是日志被清空过,或你刚重装/迁移 Navicat 且未同步配置
- 每条记录双击即可在新查询窗口中打开完整 SQL,支持复制、修改、再执行
- 右键任意记录可选择
导出结果,保存为.sql或.csv,适合归档或交接
查不到语句?先确认是不是被过滤掉了
历史日志窗口顶部有筛选栏,很容易误操作导致“明明执行过却找不到”。常见陷阱是:选了某个数据库连接、设了时间范围、或输错了关键字。
- 检查左上角的
数据库下拉框是否设为全部(不是某个具体连接名) - 时间范围默认只显示最近 7 天,如果想查更早的,点日历图标手动扩大范围
- 搜索框输入的是 SQL 文本内容,不是表名或字段名——比如搜
UPDATE users能命中,搜user_id可能漏掉 - 失败语句也会记录,但状态列标为红色
错误,别只盯着绿色的成功
编辑器本身不存历史,别指望 Ctrl+Z 回退已执行的 SQL
Navicat 的查询编辑器(就是你写 SQL 的白底窗口)没有“本地执行历史缓存”。它只保留当前窗口里的文本,关掉就清空,也不记录你之前在哪条语句上按过 F9。
-
Ctrl+Z只能撤销编辑器内的文字修改,对“已执行”的操作完全无效 - 所谓“找回”,全依赖外部机制:历史日志(推荐)、临时文件(不稳定)、或数据库自身的 binlog(需提前配置)
- 如果你习惯写完一条就
F9执行然后删掉,那编辑器里确实什么都不会留下——历史日志是你唯一的回溯依据
改过连接名或重装后历史记录消失,这是路径绑定导致的
Navicat 把历史日志文件(如 LogHistory.txt)和连接名强绑定。比如你把 MySQL 连接从 prod-db 改成 prod-mysql,旧日志不会自动迁移到新连接下。
- Windows 路径通常是:
C:\Users\[用户名]\Documents\Navicat\MySQL\servers\[连接名]\LogHistory.txt - Mac 路径对应是:
~/Documents/Navicat/MySQL/servers/[连接名]/LogHistory.txt - 最稳妥做法:改连接名前,先用
导出结果把历史日志存成.sql;改完后,再通过执行SQL文件导入补记录(虽然不能还原执行时间等元信息) - 不要直接复制粘贴
LogHistory.txt到新文件夹——格式可能不兼容,Navicat 启动时会忽略损坏的日志文件
真正容易被忽略的一点:历史日志只记录“你点执行”的 SQL,不记录 Navicat 自动生成的语句(比如设计表时点保存触发的 ALTER TABLE)。那些操作得靠 工具 → 数据库操作日志,而且需要数据库本身开启 general_log 或 binlog——这完全是另一套机制,别混在一起找。










