Navicat 连接失败时不自动记录详细日志,需手动关闭程序、修改 config.ini 启用 DebugLog=1 和 LogLevel=3,重启后日志生成于 logs/ 目录,仅含客户端行为,不含服务端真实错误。
连接失败时,Navicat 自身不记录连接过程日志
navicat 的「测试连接」或「连接数据库」操作失败后,弹窗只显示简短错误(如 connection refused 或 access denied),它不会在 ui 中提供连接握手、dns 解析、tcp 建立、ssl 协商等中间环节的详情。所谓“详细日志”,必须手动启用底层 debug 日志,否则你永远看不到是卡在 dns 超时、还是 mysql 服务根本没监听、或是 ssl 证书验证失败。
必须关闭 Navicat 后修改 config.ini 才能捕获连接日志
Navicat 的 debug 日志不是运行时开关,而是启动前配置项。不关掉程序直接改配置无效——进程会继续读取旧内存缓存。
- 完全退出 Navicat(Windows 注意右下角托盘图标也要右键退出)
- 编辑配置文件:
%APPDATA%\PremierSoft\Navicat Premium\config.ini(Windows)或~/Library/Application Support/PremierSoft/Navicat Premium/config.ini(macOS) - 在
[General]段落末尾添加两行:DebugLog=1LogLevel=3 - 重启 Navicat,再执行一次「测试连接」
日志将生成在 logs/ 子目录下,文件名类似 navicat_debug_20260616.log。重点搜索关键词:Connection timed out、Failed to connect to host、SSL handshake failed、Authentication plugin 'caching_sha2_password' is not supported。
连接日志里看不到 MySQL 服务端真实报错
Navicat debug 日志只记录客户端行为:比如“尝试连接 192.168.1.100:3306”、“收到服务器初始包”、“发送认证响应”、“收到错误包 1045”。但它不会告诉你服务端为什么返回 1045——比如是否因 mysql.user 表缺失、或 skip-grant-tables 导致权限系统未加载。
- 若日志中看到
Access denied for user,需立刻切到 MySQL 服务端执行:SELECT User, Host FROM mysql.user;确认账号是否存在且 Host 匹配 - 若日志卡在
Connecting to host...超过 10 秒,说明是网络层问题,用telnet 192.168.1.100 3306或nc -zv 192.168.1.100 3306验证端口可达性 - 若日志出现
Unknown authentication plugin,说明 Navicat 版本太老,不支持 MySQL 8.0 默认的caching_sha2_password,需升级 Navicat 或在服务端重置用户认证方式
别依赖「输出详细信息」窗口查连接问题
「输出详细信息」只对「还原数据库」「执行 SQL 文件」这类批量操作生效,它不参与连接建立流程。你在新建连接 → 点「测试连接」时,这个复选框根本不会出现——它和连接故障排查无关。
真正关键的日志路径、配置项、关键词都集中在本地 navicat_debug_*.log 文件里,而且必须提前开启。等连接失败了再想起来开日志,已经晚了。











