Linux版Navicat的QueryExec.log默认位于~/.config/navicat/Premium/Logs/QueryExec.log(Premium版)或~/.config/navicat/MySQL/Logs/QueryExec.log(MySQL版),但需在“工具>选项>调试”中启用“记录查询执行日志”,且该文件每次启动Navicat时会被清空。
Linux版Navicat的QueryExec.log在哪
linux下navicat执行过的sql语句默认记录在 queryexec.log,该文件位于用户配置目录下的 logs 子目录中。路径不是固定写死的,而是由 xdg_config_home 环境变量决定;若未设置,则 fallback 到 ~/.config。
典型路径为:~/.config/navicat/Premium/Logs/QueryExec.log(对应 Navicat Premium)或 ~/.config/navicat/MySQL/Logs/QueryExec.log(对应 Navicat for MySQL)。
- 不同产品线(MySQL/PostgreSQL/Premium)会使用各自子目录,不可混用
- 该文件在 Navicat 启动时会被清空 —— 不是追加写入,而是覆盖重置
- 若你刚执行完几条语句就重启了Navicat,
QueryExec.log很可能已为空
cmdline.log 和 LogImport.txt 的位置是否一致
是的,cmdline.log(命令行自动运行日志)和 LogImport.txt(导入操作日志)与 QueryExec.log 同级,都在同一 Logs 目录下。
它们同样受启动覆写机制影响:每次 Navicat 启动时,cmdline.log 会被清空;LogImport.txt 则通常保留上次导入的完整过程,但也不保证跨会话持久 —— 官方未承诺其滚动策略。
- 不要依赖这些文件做长期审计;它们是调试辅助,不是审计日志
- 若需留存历史,建议手动定期 cp 备份整个
Logs目录 - 注意权限:这些文件属用户所有,且默认无 group/o 可读,
ls -l可确认
如何快速定位当前实际日志路径
最可靠的方式不是猜路径,而是让 Navicat 自己告诉你 —— 它在 UI 中暴露了真实路径。
打开 Navicat → 顶部菜单栏选择 工具 > 选项 > 文件路径(部分版本叫“首选项 > 常规 > 文件”),右侧会明确显示 日志文件夹 的绝对路径。
- 这个路径值优先级最高,覆盖所有默认规则
- 若你曾修改过该设置,
~/.config/navicat/下的配置文件(如navicat_mysql.ini)里会有LogPath=xxx字段 - 路径中若含环境变量(如
$HOME),Navicat 启动时已展开,UI 显示的是最终绝对路径
为什么有时找不到 Logs 目录或日志为空
常见原因不是路径错了,而是 Navicat 没有触发日志写入条件,或被静默禁用。
- Navicat 默认只在“启用日志记录”开启时才写
QueryExec.log;该开关藏在 工具 > 选项 > 调试 页(部分版本叫“高级”),勾选记录查询执行日志 -
cmdline.log仅在通过命令行参数(如--run-query)启动时生成,GUI 正常启动不写它 - 某些企业定制版或 Snap/Flatpak 打包版本会沙盒化,日志可能被重定向到
/var/log/snap.navicat.*或~/.local/share/flatpak/app/com.premiumsoft.Navicat/x86_64/stable/active/files/logs/
真正难排查的点在于:日志功能本身是可开关的,且开关位置分散、命名不统一。别假设它默认开着 —— 先去“调试”或“高级”选项卡里确认状态。











