不支持跨平台共享查询历史。windows用loghistory.txt纯文本,macos用query_history.db sqlite数据库,二者格式、路径、字段、编码均不兼容;修改设置路径无效,因查询历史不走该配置;唯一可行方案是导出csv/sql再手动导入,或使用跨平台通用的查询片段功能。
不支持直接跨平台共享查询历史记录。 windows 和 macos 版本的 navicat 使用完全不同的存储格式与路径,强行复制文件或修改设置路径均无效。
为什么 LogHistory.txt 和 query_history.db 无法互通
Windows 默认将查询历史存为 LogHistory.txt(纯文本,按连接名分目录),而 macOS 默认使用 query_history.db(SQLite 数据库,位于 ~/Library/Application Support/PremiumSoft/Navicat Premium/cache/)。两者字段结构不一致:query_history.db 含 created_time、sql_text、connection_id;LogHistory.txt 仅含时间戳、SQL 文本、执行状态三列明文。路径分隔符、编码方式、权限模型也不同,导致 macOS 版根本不会读取 Windows 的 .txt 文件,反之亦然。
改设置路径指向同步盘为什么没用
Navicat 的「设置位置」或「文件位置」配置项只影响备份、导入导出脚本、连接配置等文件,对查询历史完全不生效。即使你把 C:\Users\Alice\Documents\Navicat\MySQL\servers\prod-db\LogHistory.txt 手动同步到 Mac 的对应目录,macOS 版 Navicat 仍会忽略它——因为它只认自己生成的 query_history.db,且初始化时不会扫描或迁移旧格式日志。
真正可行的跨平台同步方案
放弃同步原始历史文件,转为人工可控的离线流程:
- 在源端(如 Windows):若使用旧版 Navicat(日志为
LogHistory.txt),可用文本工具提取 SQL 行;若为新版(存在query_history.db),执行sqlite3 query_history.db "SELECT sql_text, created_time FROM query_history ORDER BY created_time DESC LIMIT 100;" > history_export.csv - 将导出的 CSV 或纯文本 SQL 存入 iCloud / Dropbox / NAS 等同步盘
- 在目标端(如 macOS):用 VS Code 或 Excel 查看内容;如需导入,需手动写脚本插入到本地
query_history.db,注意created_time格式需转为 SQLite 支持的YYYY-MM-DD HH:MM:SS - 更务实的做法:高频复用的 SQL 应保存为「查询片段」(Query Snippets),该功能支持导出为
.sql文件,跨平台完全通用,且双击即可执行
容易被忽略的关键点是:查询片段不带执行时间戳和连接上下文,它只是可移植的 SQL 文本——这意味着你得靠人工命名和注释来管理版本与用途,比如在文件开头加 -- [2026-06-12] prod_user_stats_v2, for MySQL 8.0+。











