navicat连接不上数据库的检查步骤与解决方法
Navicat for MySQL 12是一款具备多项改进和新功能,能满足你对数据库开发的需求。过百种增强的功能和耳目一新的界面,让你以崭新的方式创建、管理和维护数据库。Navicat for MySQL 是管理和开发 MySQL 或 MariaDB 的理想解决方案。它是一套单一的应用程序,能
遇到 Navicat 连接数据库失败?不要盲目改密码。本文详解从检查主机端口、确认服务运行、测试网络连通性到配置 SSH 隧道的完整排查流程,解决 Connection Refused、Access Denied 等常见报错。
Navicat 连接不上数据库时,最忌讳一开始就反复修改密码或重装软件。大多数连接失败源于主机名错误、服务未启动、防火墙拦截或权限配置不当。按照“连接参数—服务状态—网络端口—账号权限—加密或隧道”的逻辑顺序检查,通常能快速定位并解决问题。

Navicat 连接失败时的典型报错弹窗,显示错误代码和信息
1. 先确认连接类型和报错内容
打开 Navicat 的连接设置窗口,首先确认当前连接的目标数据库类型是 MySQL、MariaDB、PostgreSQL 还是 SQL Server。不同数据库的默认端口、驱动机制和认证方式差异巨大,不能用 MySQL 的经验直接套用到其他数据库上。
仔细记录完整的报错信息,重点关注以下关键词,它们直接指向排查方向:
- connection refused 或 10061:通常意味着目标主机没有运行数据库服务,或者端口被防火墙拦截,客户端根本连不上服务器。
- timeout:网络不通、路由错误或防火墙丢弃了数据包,导致连接超时。
- access denied:网络已通,但用户名、密码错误,或该账号不允许从当前 IP 登录。
- host is not allowed:服务端明确拒绝了来自当前客户端主机的连接请求。
- password authentication failed:常见于 PostgreSQL,表示认证配置不匹配。
分清是“连不上”还是“进不去”,后续步骤才能有的放矢。
2. 核对主机名和端口
在 Navicat 连接属性中,逐一核对主机名(Host)、端口(Port)、用户名和密码。
如果是连接本机数据库,主机名通常填写 localhost 或 127.0.0.1。如果是远程服务器,必须填写服务器的真实公网 IP 或域名,切勿将网站域名、数据库名称或 SSH 登录地址混淆填入主机栏。
以 MySQL 为例,默认端口是 3306,但许多服务器出于安全考虑会修改此端口。不要想当然地认为端口一定是 3306,应登录服务器查看实际监听端口。同时,检查是否使用了过期的 IP 地址,特别是对于动态公网 IP 的家庭宽带或云服务器,IP 变更后旧地址将失效。
修改参数后,点击【测试连接】,观察报错信息是否发生变化。

2. 核对主机名和端口
3. 确认数据库服务正在运行
如果连接的是本机数据库,首先要确保数据库服务已经启动。在 Windows 系统中,打开【服务】管理器,查找 MySQL、MariaDB 或 PostgreSQL 服务,确认其状态为“正在运行”。在 Linux 系统中,可使用 systemctl status mysql 等命令查看。
如果服务未启动,Navicat 无论输入什么正确密码都无法连接。启动服务后再次测试。若服务启动后立即停止,请查看数据库错误日志(如 error.log),优先解决服务崩溃问题,而不是在 Navicat 中反复尝试连接。
对于远程数据库,同样需要确认服务端进程正常运行,并且绑定在允许外部访问的地址上。有些数据库安装后默认只监听 127.0.0.1,即使服务显示运行,外部电脑也无法连接。
4. 检查端口是否可以访问
确认服务运行后,需验证客户端到服务器的网络端口是否畅通。在 Windows 电脑上,可以使用 PowerShell 执行以下命令测试:
Test-NetConnection <数据库主机IP> -Port <端口号>
例如:Test-NetConnection 192.168.1.100 -Port 3306。将示例中的 IP 和端口替换为你的实际参数。
如果测试结果显示 TcpTestSucceeded : False,说明端口不可达。此时应重点检查服务器防火墙、云平台安全组、路由器端口映射以及数据库的监听配置。如果端口可达但 Navicat 仍提示认证失败,说明网络层已打通,问题转向账号权限或密码。
注意:测试完成后,应及时关闭不必要的公网端口开放,遵循最小权限原则。
5. 检查服务端监听地址和防火墙
本地连接失败常因数据库只监听回环地址;远程连接失败则多因防火墙未放行端口。
检查数据库配置文件(如 MySQL 的 my.cnf 或 my.ini),确认 bind-address 或 listen_addresses 设置。若设置为 127.0.0.1,则仅允许本机连接;若要允许远程连接,需改为 0.0.0.0 或指定网卡 IP,修改后需重启数据库服务。

云平台安全组中放行数据库端口的设置示例
同时,检查服务器操作系统防火墙(如 Windows Firewall、iptables、ufw)是否放行了数据库端口。如果数据库托管在阿里云、腾讯云等云平台,还需检查云控制台的【安全组】规则,确保入方向允许你的客户端 IP 访问数据库端口。系统防火墙和云安全组任意一层阻断,都会导致连接失败。
6. 检查账号密码和远程权限
当网络连通但收到“Access denied”时,问题出在账号权限上。数据库账号通常与“来源主机”绑定。例如,MySQL 中 user@localhost 和 user@% 是两个不同的权限实体。
即使你在本机能用 root 登录,也不代表能从远程电脑用 root 登录。需由数据库管理员在服务端执行授权命令,允许特定用户从特定 IP 或所有 IP(使用 %)连接。例如:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
此外,确认 Navicat 中保存的密码是否为最新修改后的密码。若不确定,可删除旧连接重新创建,避免复制了隐藏空格或错误参数。
7. 远程连接优先考虑 SSH 隧道
如果数据库服务器出于安全考虑,只允许本机访问(即绑定了 127.0.0.1 且防火墙未开放数据库端口),但你拥有服务器的 SSH 登录权限,可以使用 Navicat 的 SSH 隧道功能。
在连接设置的【SSH】选项卡中配置:
- 主机:填写服务器的公网 IP。
- 端口:通常为 22。
- 用户名/密码:填写服务器的 SSH 登录账号和密码(或私钥)。
- 常规选项卡中,数据库主机填写
127.0.0.1或localhost,因为这是相对于服务器内部的地址。
SSH 隧道建立后,Navicat 会先通过加密通道连接到服务器,再由服务器内部访问数据库。这种方式无需开放数据库公网端口,更加安全。配置时需注意,SSH 账号和数据库账号是独立的,不要混淆。
8. 检查 SSL、字符集和驱动选项
部分高安全性要求的数据库强制启用 SSL 加密连接。如果主机、端口、密码均正确,但连接时在握手阶段失败,需检查 Navicat 的【SSL】设置。
根据服务端要求,上传 CA 证书、客户端证书和私钥,并选择正确的验证模式。同时,确保 Navicat 版本与数据库服务端兼容。老旧版本的 Navicat 可能不支持新版数据库采用的默认认证插件(如 MySQL 8.0 的 caching_sha2_password),此时需升级 Navicat 或在服务端调整认证方式。
切勿为了临时连通而随意关闭 SSL 验证,正式环境应严格遵循安全策略。

8. 检查 SSL、字符集和驱动选项
9. 连接成功但看不到数据库列表
如果 Navicat 提示连接成功,但左侧数据库列表为空或无法展开,这通常不是连接故障,而是权限限制。当前账号可能没有 SHOW DATABASES 或查看元数据的权限。
在连接属性中,找到【高级】或【数据库】设置,尝试手动指定有权限访问的数据库名称。若能成功打开指定数据库,说明连接正常,只是列表加载受限。此时应联系管理员赋予相应的查看权限,或直接在查询窗口操作已知存在的数据库。
10. 用分层结果确认问题已解决
每次修改配置后,只改变一个变量,然后点击【测试连接】记录结果。建议按以下顺序验证:
- 更正主机名和端口后,网络是否可达(排除 Timeout)。
- 启动数据库服务后,是否仍提示拒绝连接(排除 Service Down)。
- 放行防火墙/安全组后,报错是否变为认证失败(排除 Network Block)。
- 更换正确账号/授权后,是否能建立连接(排除 Access Denied)。
- 配置 SSH/SSL 后,远程连接是否稳定。
连接成功后,打开一个已知数据库,执行简单的 SELECT 1; 查询,再断开重连以验证稳定性。最后保存连接配置,并注意保护敏感信息,不要将包含明文密码的连接文件发送给他人。

连接成功后左侧导航栏显示数据库列表
对于生产环境的远程数据库,建议保留一份包含主机、端口、连接方式、账号权限范围和证书有效期的运维记录。下次遇到连接问题,对照可用配置快速比对,能大幅缩短排查时间。




























