本地SQL Server 2016命名实例TCPIP连接(SQL账户)故障排查请求
SQL Server 2016命名实例:SQL账户+TCP/IP本地连接失败排查方案
作为常年折腾SQL Server本地部署的开发者,结合你的环境(Windows 10 Pro + SQL Server 2016开发者版命名实例RAXLENOVOT560\MSSQL2016MAIN,混合模式认证),针对你只能通过Windows认证连接、无法用SQL Server账户走TCP/IP协议的问题,三个核心排查方向如下:
排查点1:TCP/IP协议是否在SQL Server配置管理器中启用并正确配置
这是命名实例连接最容易踩的坑,默认可能没开启TCP/IP:
- 打开
SQL Server Configuration Manager,依次展开SQL Server网络配置 -> MSSQL2016MAIN的协议,确认TCP/IP的状态是「已启用」 - 双击TCP/IP进入属性窗口,切换到IP地址标签,拉到最底部的IPAll区域:
- 确认TCP端口设置为
1433(默认端口,自定义的话要记牢数值) - 清空「TCP动态端口」的内容,避免动态端口导致连接不稳定
- 确认TCP端口设置为
- 检查上方的
IP1(对应127.0.0.1)和IP2(对应本地IPv4地址),确保「已启用」设为「是」,TCP端口和IPAll保持一致 - 配置完成后,必须重启
SQL Server (MSSQL2016MAIN)服务,让配置生效
排查点2:SQL Server登录账户是否正常启用且权限配置正确
混合模式开了不代表账户就能用,得确认账户状态和权限:
- 用Windows认证登录SSMS,展开安全性 -> 登录名,找到你要使用的SQL Server账户(比如
sa或自定义账户) - 右键打开「属性」:
- 常规标签:确认选中「SQL Server身份验证」,且「登录已禁用」的复选框未勾选
- 服务器角色标签:至少分配
public角色,测试阶段可以临时加上sysadmin角色(先排除权限不足的问题) - 用户映射标签:勾选你需要连接的目标数据库,给账户分配对应的数据库角色(比如
db_owner或db_datareader/db_datawriter)
- 如果是
sa账户,还要确认是否在混合模式启用后解锁了sa(默认可能处于锁定状态)
排查点3:客户端连接配置是否强制指定TCP/IP协议及正确端口
很多时候连接失败是因为客户端默认用了Named Pipes而非TCP/IP:
- 在SSMS中连接时,服务器名称不要直接用
RAXLENOVOT560\MSSQL2016MAIN,而是写成RAXLENOVOT560,1433或127.0.0.1,1433(端口号对应你配置的数值),这样会强制使用TCP/IP协议 - 在DataGrip中配置数据源时:
- 选择「SQL Server」类型,主机填
localhost或RAXLENOVOT560 - 端口填你在配置管理器中设置的端口(比如1433)
- 认证方式选择「SQL Server」,输入对应的用户名和密码
- 选择「SQL Server」类型,主机填
- 可以用PowerShell命令测试端口连通性:
Test-NetConnection localhost -Port 1433,如果返回「TcpTestSucceeded : True」说明端口没问题,排除防火墙或端口占用问题
内容的提问来源于stack exchange,提问作者Rax
相关产品推荐
相关产品推荐

