Navicat 15 连不上 MySQL 8.0 或模型异常,主因常是手动降级驱动(如误用 5.1.47)或未正确配置用户认证;应删旧驱动、启用内置 8.0+ 驱动,确认 host 匹配并重连。
Navicat 15 连不上 MySQL 8.0?先确认是不是驱动版本拖后腿
navicat 15 默认带的是 mysql connector/j 8.0+ 驱动,理论上支持 caching_sha2_password 和新系统视图(如 information_schema.columns 的扩展字段),但实际连接失败或模型加载异常(比如反向工程时字段类型识别错、主键丢失、视图/cte 不显示)往往不是版本不够,而是驱动被手动降级或缓存残留。常见表现是:能连上、能查数据,但「数据库→设计表」打不开,或「工具→模型→从数据库生成」卡在“正在获取表结构”。
检查方式很简单:Navicat → 帮助 → 关于 → 查看 JDBC 驱动路径,如果看到 mysql-connector-java-5.1.47.jar 或 6.0.x,说明已被替换成旧驱动——它压根不理解 MySQL 8.0 的 JSON、TINYINT(1) 布尔映射、generated column 等特性,模型解析必然出错。
- 不要手动替换驱动;Navicat 15 自带的
mysql-connector-java-8.0.33.jar(或更高)才是安全选择 - 若已替换,删掉
lib目录下所有mysql-connector-*.jar,重启 Navicat 让它自动加载内置驱动 - Windows 下驱动路径通常为:
C:\Program Files\PremiumSoft\Navicat Premium 15\drivers\
MySQL 8.0 的 JSON / GENERATED COLUMN 在 Navicat 模型里不显示?这是预期行为
Navicat 15(含 15.0.32 及之前所有公开版本)的 ER 图和表设计界面,对 MySQL 8.0 新增的元数据字段支持有限。例如:
-
JSON类型会被识别为LONGTEXT,且不会在「字段属性」面板中显示GENERATED ALWAYS AS (...) STORED/VIRTUAL表达式 -
INFORMATION_SCHEMA.COLUMNS中新增的GENERATION_EXPRESSION字段,Navicat 模型层未读取 - 即使连接参数加了
useInformationSchema=true,也不会触发额外元数据拉取
这不是 bug,是功能边界。如果你依赖模型导出 DDL 或做可视化建模,得接受它对新特性的“降级兼容”——JSON 当文本用、GENERATED 字段当普通字段处理。真要完整建模,建议改用 MySQL Workbench 8.0.34+ 或导出 SHOW CREATE TABLE 手动补全。
执行 ALTER USER 后 Navicat 模型仍报错 1251?你可能漏了 host 匹配
执行 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxx'; 后,Navicat 还报 1251,大概率是因为 Navicat 连接时用的是 IP(比如 127.0.0.1)而非 localhost,而 MySQL 把 'root'@'localhost' 和 'root'@'127.0.0.1' 视为两个独立用户。
- 登录 MySQL 后执行:
SELECT User, Host FROM mysql.user WHERE User = 'root';,确认你要连的 host 是否已覆盖 - 若需支持任意本地连接,执行:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxx';(注意:仅限测试环境) - 生产环境更稳妥的做法是明确指定 host:
ALTER USER 'root'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY 'xxx'; - 别忘了
FLUSH PRIVILEGES;,否则修改不生效
模型里看不到 performance_schema 或 sys 库的表?默认被 Navicat 过滤了
Navicat 15 的对象浏览器默认隐藏 performance_schema、sys、information_schema 这类系统库,这不是连接问题,而是 UI 层的过滤策略。即使你手动在「连接属性→高级→初始命令」里加了 SET sql_mode='';,也不会影响这个开关。
要临时显示它们:
- 右键连接 → 「编辑连接」→ 「高级」选项卡 → 勾选「显示系统数据库」
- 注意:勾选后
sys库里的视图仍可能无法展开(因依赖performance_schema动态表,Navicat 不主动查询) - 若需分析慢查询,直接用「查询」窗口执行
SELECT * FROM performance_schema.events_statements_summary_by_digest ORDER BY SUM_TIMER_WAIT DESC LIMIT 10;更可靠
真正容易被忽略的点是:Navicat 的模型功能本质是「静态元数据快照」,它不实时同步 MySQL 服务端的权限变更、插件加载状态或配置热更新。哪怕你改了 default_authentication_plugin 并重启了 mysqld,Navicat 模型也不会自动重载认证逻辑——它只关心连接建立那一刻的响应结果。所以每次调参后,务必断开重连,而不是仅刷新对象列表。


















