首要排查点是SQL Server未监听目标端口或连接被拦截:先用Test-NetConnection验证端口连通性,再确认TCP/IP已启用、静态端口配置正确并重启服务,同步放行Windows防火墙及云平台安全组对应端口,Navicat主机栏须用英文逗号分隔IP与端口。
Navicat 连接超时(08001 错误)的首要排查点
超时不是密码错,而是 navicat 根本没收到 sql server 的响应包。最常见原因是 sql server 没在目标端口监听,或中间被拦截。
先在 Navicat 所在机器执行:Test-NetConnection 192.168.x.x -Port 1433(把 IP 换成你的真实服务器地址)。看 TcpTestSucceeded 是否为 True:
- 如果是
False但Ping得通 → 端口未开放或 SQL Server 未启用 TCP/IP - 如果
Ping都不通 → 网络路径问题(网关、VLAN、DNS 解析错误) - 如果测试成功却仍连不上 → 问题转向认证或驱动层
SQL Server 必须启用 TCP/IP 并配置静态端口
默认安装的 SQL Server Express 或精简版,TCP/IP 协议常处于“禁用”状态,只留命名管道——这会导致 Navicat 完全无法远程连接。
打开 SQL Server 配置管理器 → 展开“SQL Server 网络配置” → 找到你的实例(如 SQL Server (SQLEXPRESS))→ 右键 TCP/IP → “启用”
双击进入属性 → 切换到“IP 地址”页 → 拉到底部找到 IPAll 区域:
- 清空
TCP Dynamic Ports(留空) - 在
TCP Port中填入1433(或其他你指定的固定端口) - 改完必须重启
SQL Server (SQLEXPRESS)服务(不是 SQL Server Agent)
Windows 防火墙必须放行 TCP 端口,且规则要匹配实际端口
防火墙不报错,只默默丢包,Navicat 表现就是“连接超时”。别信“已关闭防火墙”的直觉,要验证规则是否存在。
在 Windows 11 上"直接发声"的 TTS(从 WSL2/TUI 调用 powershell.exe + System.Speech)。适用于用户说"说出来/读出来/语音播报/用TTS",或反馈"没声音/tts 生成的 mp3 是空的/播不出来",以及需要中文语音但 OpenClaw 内置 tts 不可用时。
在服务器上运行:netsh advfirewall firewall show rule name=all | findstr "1433"
- 无输出 → 规则不存在,立即添加:
netsh advfirewall firewall add rule name="SQL Server TCP 1433" dir=in action=allow protocol=TCP localport=1433 - 若 SQL Server 实际监听的是
15433,规则里localport和 Navicat 主机栏都得同步改成192.168.x.x,15433(注意是逗号,不是冒号) - 云服务器(如阿里云 ECS)还需检查安全组:入方向规则必须允许该端口 + 来源 IP 范围
Navicat 连接字符串格式和驱动缺一不可
Navicat 填写主机地址时,192.168.1.100:1433 是错的;正确写法是 192.168.1.100,1433(冒号 → 逗号)。命名实例不能写 192.168.1.100\SQLEXPRESS,而应写 192.168.1.100\SQLEXPRESS,1433。
驱动缺失是静默失败的主因。Navicat Premium 不自带 SQL Server 原生驱动,必须手动安装:
- 找到 Navicat 安装目录下的
sqlncli_x64.msi(64 位系统)并运行安装 - 在 Navicat 新建连接 → “高级”选项卡 → “ODBC 驱动”下拉菜单中选择刚装的驱动(如
SQL Server Native Client 11.0) - 装完不显示?重启 Navicat;仍不显示?从 Microsoft 官网下载最新
Microsoft ODBC Driver for SQL Server替代
最容易被跳过的其实是 SQL Server 登录模式和 sa 状态:混合模式没开、sa 账户禁用、或“授予连接权限”没勾选,都会让 Navicat 在认证阶段直接断连,且错误提示极其模糊。这些必须进 SSMS 用 Windows 身份验证进去手动确认和修改。

















