SQL Server远程连接失败的五大原因及解决:①TCP/IP协议未启用,需在配置管理器中启用并设端口1433;②Windows防火墙阻止1433端口,须新建入站规则放行;③登录模式非混合模式,需启用SQL与Windows身份验证并重启服务;④sa账户未启用或密码错误,需执行ALTER LOGIN启用并设强密码;⑤命名实例连接时SQL Server Browser服务未启动或UDP 1434端口被防火墙拦截,建议直接使用IP+端口连接。

SQL Server 服务没监听 TCP/IP,远程连不上
默认安装的 SQL Server(尤其是 Express 版)通常只启用 Shared Memory 协议,TCP/IP 是禁用状态。这意味着本地 SSMS 能连,但任何远程客户端都会报错:A network-related or instance-specific error occurred...。
必须手动启用并配置 TCP/IP:
- 打开
SQL Server Configuration Manager(注意:不是 SQL Server Management Studio) - 展开「SQL Server 网络配置」→ 找到对应实例(如
SQL Server (MSSQLSERVER)或SQL Server (SQLEXPRESS))→ 右键TCP/IP→ 选「启用」 - 双击
TCP/IP→ 切到「IP 地址」页 → 拉到底部,找到IPAll区域 → 清空TCP Dynamic Ports(留空),填入TCP Port(如1433) - 重启对应 SQL Server 服务(右键服务 → 「重新启动」)
Windows 防火墙拦住了 1433 端口
即使 SQL Server 听了 1433,Windows 防火墙默认会丢弃所有入站连接。错误现象是超时(而非拒绝),比如用 telnet your-server 1433 直接卡住无响应。
放行端口最稳妥的方式是新建入站规则:
- 进「Windows Defender 防火墙」→「高级设置」→「入站规则」→「新建规则」
- 选「端口」→ TCP → 特定本地端口:
1433(如果改过端口,填实际值) - 操作选「允许连接」→ 配置文件勾上「域」「专用」「公用」(测试环境建议全选)
- 名称写清楚,比如:
SQL Server TCP 1433
不推荐直接关闭防火墙——既不安全,也掩盖真实问题。
SQL Server 登录模式不是混合模式,sa 登录失败
远程连接常卡在认证环节。如果服务器只启用了 Windows 身份验证模式,sa 账户或 SQL 登录用户根本无法使用,错误信息通常是:Login failed for user 'sa' 或 Cannot connect to <server>.
必须确认并切换为混合模式:
- 用 Windows 身份登录 SSMS → 右键服务器 →「属性」→「安全性」→「服务器身份验证」选「SQL Server 和 Windows 身份验证模式」
- 重启 SQL Server 服务(这步不能跳)
- 确保
sa已启用:ALTER LOGIN sa ENABLE;,并设密码:ALTER LOGIN sa WITH PASSWORD = 'your-strong-pass'; - 检查
sa的默认数据库是否可用(避免指向已删除的库)
连接字符串里实例名写错了,或者 SQL Browser 没开
如果是命名实例(比如 SQLEXPRESS),远程连接必须明确指定实例名,且依赖 SQL Server Browser 服务来解析端口。常见错误是连 192.168.1.100\SQLEXPRESS 失败,但连 192.168.1.100,1433 成功——说明 Browser 没起作用。
两种解法任选其一:
- 启用
SQL Server Browser服务(仅当必须用实例名连接时才需要)→ 设为自动启动并启动它 - 更推荐:直接在连接字符串中用 IP+端口(如
192.168.1.100,1433),绕过 Browser;同时确保该实例的TCP/IP在「IP 地址」页里每个IPx下都填了端口(不止IPAll)
别忽略 SQL Server Browser 的 UDP 1434 端口——如果开了防火墙又没放行它,实例名解析照样失败。










