Navicat SQL执行历史默认仅内存缓存,重启或关闭即清空;需手动开启Tools→Options→Environment→Query History中的Save query history并指定路径才能持久化为.sql文件,且仅保存F6或“运行全部”执行的语句。
Navicat 的 SQL 执行历史默认不持久,关掉软件就没了
navicat 的「历史日志」窗口(ctrl+h / cmd+h)里看到的记录,默认只存在内存中,不是写死在硬盘上的文件。重启 navicat、切换连接、甚至只是关闭再打开历史日志窗口,都可能导致记录清空——这不是异常,是设计如此。
真正能“清除”的,只有两类东西:一是你手动点开的历史日志窗口里的当前内容;二是如果你提前开启了 Save query history,它生成的本地 .sql 文件(路径绑定到具体连接名,比如 C:\Users\XXX\Documents\Navicat\MySQL\servers\prod-db\LogHistory.txt)。
- 没开启持久化?那根本不用“清除”,关软件就自动清了
- 开了持久化?删掉对应连接目录下的
LogHistory.txt或类似命名的文本文件即可 - 别去动
navicat.db或navicat.conf——字段结构随版本变,瞎删可能让配置错乱
用 Ctrl+H 打开的历史日志窗口,怎么清空当前显示的内容
这个窗口本身提供「清空」按钮,但它只清当前视图缓存,不影响磁盘文件(如果开启了持久化)。操作路径很直接:
- 按
Ctrl+H(Windows)或Cmd+H(Mac)唤出历史日志窗口 - 右上角找垃圾桶图标,或右键任意记录 → 选「清空历史」
- 确认后,窗口内所有条目消失,但已保存的
LogHistory.txt不受影响 - 注意:该操作不可撤回,且不会删除数据库端日志(如 MySQL 的
general_log)
想彻底断掉所有历史痕迹,得关掉持久化并删文件
如果你希望 Navicat 下次启动时完全从零开始,不留任何执行痕迹,光清窗口不够,必须切断源头:
- 进
Tools → Options → Environment → Query History - 取消勾选
Save query history(这是关键一步,否则下次还会写) - 找到对应连接名的 LogHistory 文件路径(Windows:
C:\Users\[用户名]\Documents\Navicat\MySQL\servers\[连接名]\;Mac:~/Documents/Navicat/MySQL/servers/[连接名]/) - 删掉里面的
LogHistory.txt(或history.sql等类似文件) - 顺手检查
SQL Log是否开着(Tools → SQL Log),如果开着也关掉——它也会单独记一份连接级收发日志
别指望编辑器里找回刚执行过的 SQL
很多人误以为在查询编辑器里按过 F9 或 Ctrl+Enter 的语句会留在编辑器里,其实不会。编辑器只保留你当前输入的文本,关掉窗口就清空,Ctrl+Z 只能撤销文字修改,对“已执行”毫无作用。
所谓“清除历史”,从来不是清理编辑器缓存——因为那里本来就没有执行历史。唯一靠谱的入口始终是 Ctrl+H 窗口,以及它背后是否启用的磁盘保存机制。其他所有路径(比如翻 navicat.db、查 pg_stat_statements)都是绕远路,且成功率取决于版本和权限,不解决根本问题。


















