Navicat历史日志默认只显示最近7天且时间范围静态固定,需手动点日历图标设自定义区间;数据库筛选器默认锁定单个连接而非“全部”;F9、右键执行、Ctrl+Enter等操作不被记录;LogHistory.txt按连接名隔离存储,路径依赖当前用户账户。

Ctrl+H 窗口里看不到昨天的 SQL,大概率不是 Navicat 漏记了,而是它根本没打算显示——默认只保留最近 7 天,但「7 天」是从你打开历史窗口那一刻往前推,不是从执行时间算起;更关键的是,筛选器可能已悄悄锁定了范围。
Ctrl+H 窗口默认只显示最近 7 天,且不自动刷新时间范围
- 时间筛选是静态的:右上角日历图标默认设为「Last 7 days」,但它不会随系统时间自动滚动——比如今天是 10 月 20 日,它固定显示 10 月 13 日到 20 日,不会在 10 月 21 日自动变成 14–21 日
- 如果你昨天(10 月 19 日)执行过脚本,但今天第一次打开
Ctrl+H是下午 13:07,而上次关闭窗口是上午 10 点,那窗口可能仍沿用旧的时间缓存,导致 19 日部分记录被截断 - 解决方法:点开日历图标 → 手动选「Custom Range」→ 起始时间设为 10 月 19 日 00:00,结束设为 10 月 20 日 23:59
数据库筛选器误设为单个连接,而非「全部」
- 左上角下拉框默认不是「All Connections」,而是你最近操作的那个连接名(如
prod-mysql) - 如果你昨天是在
dev-mysql连接下运行的脚本,而今天窗口里选的是prod-mysql,那dev-mysql的记录就完全不可见 - 历史记录按连接名物理隔离:Navicat 把
LogHistory.txt存在C:\Users{user}\Documents\Navicat\Premium\servers{connection_name}\LogHistory.txt下,改过连接名(比如把dev-db改成dev-mysql),旧文件不会迁移,新连接下就是空白
执行方式不被记录:F9、右键执行、Ctrl+Enter 都不算
-
Ctrl+H只收录通过「运行全部」按钮或F6触发的语句 - 如果你昨天是用
F9(执行当前语句)或右键菜单里的「Execute Current Statement」跑的脚本,它不会进入历史记录 - 同样,编辑器里直接按
Ctrl+Enter也不会记——这个行为被 Navicat 明确排除在历史采集逻辑之外
LogHistory.txt 文件本身可能被清空或路径错位
- 该文件是纯文本,但 Navicat 16 默认不加密,只要没手动删、没重装、没换用户账号,它就在原路径下
- 容易被忽略的一点:如果你昨天是在 Windows 上用 Microsoft 账户登录,今天切到了本地账户,
C:\Users{user}目录就完全变了,LogHistory.txt实际还在旧账户目录里,新 Navicat 实例根本读不到 - 检查路径是否匹配当前登录用户,别只看「Documents\Navicat」就以为对了——完整路径必须和当前
%USERPROFILE%一致
真正麻烦的不是找不回,而是你以为它“该有”,其实 Navicat 从设计上就没打算替你记住所有操作方式。最稳的路径永远是:写完重要 SQL,立刻 Right-click → Save As → xxx.sql。


















