navicat历史日志需手动打开(ctrl+h/cmd+h),默认启用但不自动弹出;记录按连接名隔离、默认仅显示7天、支持筛选导出,双击可重执行,不记录编辑器内未执行的sql。
ctrl+h 没点开,就根本看不到执行记录——navicat 的历史日志默认启用但不自动弹出,它不是编辑器里的缓存,也不是后台常驻面板,而是一个需手动调起的独立窗口。
Ctrl+H 窗口里空空如也,怎么回事?
- 历史日志按连接名隔离存储:你改过连接名(比如把
prod-db改成prod-mysql),旧记录不会迁移,新连接下就是空白 - 时间范围默认只显示最近 7 天:右上角日历图标没点开,更早的记录直接被过滤掉
- 数据库筛选器误设为某个具体连接:左上角下拉框选了单个连接,而不是“全部”,其他库的执行语句就隐身了
- 搜索框输的是表名或字段名(如
users),但实际要搜 SQL 片段(如UPDATE users),否则匹配失败 - 手动清空过日志:右键菜单里点过“Clear History”,或删过本地
LogHistory.txt文件
编辑器里按 F9 执行完就没了,还能找回吗?
不能。Navicat 查询编辑器本身不保存任何执行历史:
-
Ctrl+Z只能撤销编辑器内的文字修改,对“已执行”操作完全无效 - 关闭窗口、切换标签页、甚至重启 Navicat,当前编辑器内容就清空
- 所谓“找回”,唯一可靠路径就是
Ctrl+H窗口;没开过,就没存过
数据库日志查不到,是不是 Navicat 的锅?
不是。Navicat 不生成、不存储、也不转发数据库日志:
-
SELECT * FROM mysql.general_log返回空?先确认@@global.general_log是ON,否则日志根本没开 -
pg_stat_statements查不到原始语句?它只存参数化后的模板(如WHERE id = $1),不记你填的id = 123 -
event_log表不存在?MySQL 需先设log_output = 'TABLE'并创建对应系统表,不是连上就能查
真正容易被忽略的点:历史日志文件(LogHistory.txt)和连接名强绑定,且路径分散在用户文档目录下。重装、换账号、迁移到新电脑时,它不会自动同步——你得手动复制整个 servers/[连接名]/ 目录,否则记录就永远断代了。











