navicat连接sql server 2022失败主因是驱动不兼容、端口格式错误(须用英文逗号分隔如192.168.1.100,1433)、sql server侧未启用tcp/ip协议及混合认证模式,三者缺一不可。
navicat 连接 sql server 2022 不是配对即连的事——多数失败都卡在驱动、端口格式或服务监听这三处。只要确认这三点,90% 的连接问题当场解决。
必须先装对驱动:不是“有就行”,而是“版本匹配”
Navicat 自带的 SQL Server 驱动(如 sqlncli)早已停止维护,SQL Server 2022 默认不兼容。直接点“测试连接”报错 Driver not found 或 Cannot load driver 就是这个原因。
- 下载官方最新驱动:
ODBC Driver for SQL Server(注意不是旧版SQL Server Native Client) - 必须选
x64版本(即使你用的是 32 位 Navicat,只要系统是 64 位,就得装 x64 驱动) - 安装时勾选“为所有用户安装”,避免权限导致 Navicat 读不到
- 装完不用重启 Navicat,但要重启 SQL Server 服务(否则新驱动不生效)
主机名和端口写法:逗号不是笔误,是强制语法
SQL Server 的连接字符串解析器把冒号 : 当作命名实例分隔符(比如 SERVERNAME\INSTANCE),不是端口分隔符。填成 192.168.1.100:1433 会直接触发 Invalid connection string attribute。
- 正确写法只有两种:
- 本地默认实例:
(local),1433或localhost,1433 - 远程服务器:
192.168.1.100,1433(注意是英文逗号,非中文、非空格)
- 本地默认实例:
- 如果改过默认端口(比如设成
1434),就写192.168.1.100,1434,不能写192.168.1.100:1434 - 实例名方式(如
SERVERNAME\SQLEXPRESS)不需要加端口,但必须确保该实例已启用 TCP/IP 协议
SQL Server 2022 侧必须打开的三个开关
Navicat 配得再准,SQL Server 2022 侧关着门,照样连不上。
- 混合模式认证必须开启:SSMS 右键服务器 → 属性 → 安全性 → 选“SQL Server 和 Windows 身份验证模式”
-
sa账户必须启用且密码设好:安全性 → 登录名 → 双击sa→ 状态 → “登录”选“启用”,密码策略建议临时关闭 - TCP/IP 协议必须启用:用
SQL Server Configuration Manager打开 → SQL Server 网络配置 → 实例协议 →TCP/IP右键启用 → IPALL 中TCP Port填1433(清空TCP Dynamic Ports)→ 重启 SQL Server 服务
防火墙和网络链路:别只盯着 Navicat 设置
Login timeout expired 错误大概率不是密码错,而是包根本没发出去或没回来。
- Windows 防火墙必须放行
1433端口(入站+出站),或直接临时关闭防火墙测试 - 如果是云服务器(阿里云/腾讯云),安全组规则必须显式开放
1433端口,仅开放内网 IP 不够 - 用命令行快速验证链路是否通:
telnet 192.168.1.100 1433(Windows 自带;若提示未启用,用PowerShell运行Test-NetConnection 192.168.1.100 -Port 1433)
真正卡住人的,往往不是“怎么填”,而是“填了为什么没反应”。SQL Server 2022 默认禁用远程、默认只认 Windows 认证、默认不装新驱动——这些默认值和 Navicat 的惯性操作刚好错位。动手前先确认驱动、端口写法、服务状态这三项,比反复试密码有效得多。











