Navicat 在 M 芯片上需确认是否原生运行:活动监视器中架构为 arm64 才是原生;必须下载官网标“Universal”或含“arm64”的安装包;连 MySQL 应保持原生,连 Oracle 需临时启用 Rosetta。
确认 Navicat 是否真正在 M 芯片上原生运行
不是所有标着“for mac”的 navicat 安装包都默认走 arm64 原生路径——哪怕你下载的是官网最新版,也得手动验证。系统不会主动告诉你它正用 rosetta 转译,但性能掉点、发热升高、连接 oracle 以外的数据库(比如 mysql)时偶发卡顿,都是典型信号。
- 打开
活动监视器,在“架构”列找 Navicat 进程:显示arm64才是原生;若为rosetta或x86_64,说明被转译了 - 右键 Dock 中的 Navicat 图标 → “显示简介”,检查“使用 Rosetta 打开”是否勾选:✅ 勾选 = 强制转译;❌ 未勾选 ≠ 一定原生(还要看安装包本身是否含 arm64 架构)
- 终端执行:
file /Applications/Navicat\ Premium.app/Contents/MacOS/Navicat,输出含arm64即支持原生,含x86_64且无arm64则纯 Intel 包
下载与安装环节最容易踩的兼容性坑
官网下载页常并列提供两个 DMG:一个标“Universal”,一个标“Intel Only”。M 系列用户必须选前者,否则即便跳过 Rosetta 勾选,也会因二进制缺失而启动失败或闪退。
- 不要点链接里带
navicat120_premium_en.dmg这类旧命名的包——那是 v12.x 通用包,对 macOS Sonoma/Ventura + M3 支持不稳;优先选 v17.x 或更高版本的Navicat_Premium_17_xxx_arm64.dmg(名称中明确含arm64) - 下载后务必校验:
shasum -a256 /path/to/Navicat_Premium_17_xxx_arm64.dmg,比对官网公布的 SHA256 值,防 CDN 缓存导致的文件损坏 - 拖入
/Applications后首次启动,若弹“已损坏,无法打开”,别急着关——这是 Gatekeeper 对未公证新包的正常拦截,去系统设置 > 隐私与安全性 > 安全性底部点“仍要打开”即可,不是签名失效
MySQL 连接失败?先盯住 Homebrew 安装路径和 socket 文件位置
Navicat 连本地 MySQL 失败,90% 不是 Navicat 的问题,而是它找不到 Homebrew 装的 MySQL 实际监听位置。M 芯片下 Homebrew 默认装到 /opt/homebrew,但 Navicat 默认只认 /usr/local/mysql 或 /tmp/mysql.sock,路径错位直接报 Can't connect to local MySQL server through socket。
- 查 MySQL 实际 socket 路径:
brew services list确认服务已运行,再执行mysql_config --socket,输出类似/opt/homebrew/var/mysql/mysql.sock - Navicat 新建连接时,“主机”填
127.0.0.1(别用localhost,会触发 socket 模式),端口填3306;若仍连不上,在高级选项里手动指定 socket 路径,粘贴上面命令的输出结果 - 避免改系统级配置:不要试图把
mysql.sockln 到/tmp/,Homebrew 更新后路径可能变,硬链会断;每次用mysql_config --socket查最稳
为什么连 Oracle 要开 Rosetta,而 MySQL 不用?
这不是 Navicat 的策略,是底层驱动决定的。MySQL 官方 Connector/J 和 Homebrew 提供的 libmysqlclient 全都已原生支持 arm64;但 Oracle Instant Client 官方至今(2026 年 3 月)仍未发布 Apple Silicon 原生版,仅提供 Intel x86 DMG。Navicat 调用其 dylib 时,系统只能靠 Rosetta 翻译指令。
- 连 Oracle 前必须执行:
softwareupdate --install-rosetta --agree-to-license,否则直接报dyld: Library not loaded: libclntsh.dylib.19.1 - 连 MySQL 却开了 Rosetta?反而可能出问题:Rosetta 下某些 Homebrew 编译的 OpenSSL 依赖会异常,导致 SSL 连接握手失败,错误信息类似
SSL connection error: protocol version mismatch - 结论很直白:MySQL 连接保持 Navicat 原生运行(不勾 Rosetta),Oracle 连接临时勾选 Rosetta 并重启 Navicat——切勿长期全局启用 Rosetta
真正容易被忽略的,是 Navicat 启动后「自动继承终端环境变量」这个隐性行为。如果你用 zsh,但 Navicat 是从 Finder 点开的,它根本读不到 ~/.zshrc 里的 PATH,也就找不到 brew 装的 MySQL。解决方法只有两个:要么从终端执行 open -a "Navicat Premium" 启动,要么在 Navicat 连接设置里手动填绝对路径——没有第三条路。


















