必须开启「完全磁盘访问」权限并为备份目录单独授予「读与写」权限,同时确保路径全英文无空格、不在icloud drive下,且清除navicat的隔离属性,否则macos沙盒机制会静默重定向备份文件至受限路径。

Navicat for Mac 备份失败报“权限被拒绝”或文件静默落盘到沙盒目录,基本不是 Navicat 本身 bug,而是 macOS 应用沙盒(App Sandbox)强制拦截了文件写入行为。你看到的路径是假的,系统早已悄悄重定向。
必须开启「完全磁盘访问」权限
macOS 不会主动提示缺失该权限,Navicat 会直接 fallback 到受限路径且不报错。
- 打开「系统设置 → 隐私与安全性 → 完全磁盘访问权限」
- 点击左下角锁图标解锁(需输入密码)
- 拖入
Navicat Premium.app(注意:不是快捷方式、不是 Dock 图标,必须是 Applications 文件夹里的真实 App) - 重启 Navicat 后再试备份
单独为备份目录授予「读与写」权限
仅「完全磁盘访问」不够——沙盒机制要求对每个目标目录显式授权。
- 在 Finder 中右键点击你的备份文件夹(如
/Volumes/BackupDisk/navicat_backups)→「显示简介」 - 拉到最下方「共享与权限」区域,点右下角「+」添加当前用户
- 将权限设为「读与写」(不能只选「只读」或留空)
- 若目录在外接硬盘上,确认格式为 APFS 或 Mac OS 扩展(日志式),exFAT/NTFS 会被系统默认挂载为只读,授予权限也无效
别信界面上填的路径,先查真实落盘位置
Navicat 的 GUI 允许你输入任意路径,但后台执行时受沙盒约束,会静默重定向。备份文件可能已生成,只是你没找到。
- 打开终端,运行:
ls -la ~/Library/Containers/com.premiumsoft.navicat*.MacOS/Data/Library/Application\ Support/PremiumSoft/Navicat/(按 Tab 补全实际 bundle ID) - 如果看到带时间戳的
.sql文件,说明它确实在那里 —— Navicat 的「备份历史」列表只显示你填的路径,不反映真实位置 - 验证方法:删掉 GUI 里填的路径下的空文件夹,再执行一次备份,看沙盒目录是否新增文件
避开 iCloud Drive 和中文/空格路径
iCloud 同步目录(如 ~/Library/Mobile Documents/)和含空格或中文的路径(如 /Users/xxx/数据库备份/)是两个高频雷区。
- iCloud Drive 下的路径会被沙盒策略直接拦截,且可能触发冲突导致写入中断
- mysqldump 命令行解析参数时对空格极其敏感,路径中出现空格会导致命令截断,最终报
Access denied for user(实为密码未传入) - 推荐路径范例:
/Users/yourname/backups/navicat(全英文、无空格、不在 iCloud 下)
最常被忽略的一点:即使你完成了所有授权,Navicat 首次安装后若从未手动清除隔离属性,xattr -d com.apple.quarantine /Applications/Navicat\ Premium.app 这一步仍不可跳过——否则系统仍视其为“从互联网下载的未验证应用”,部分沙盒策略会额外收紧。











