sqlcmd不能远程连接问题及解决方案(转)

在Windows 2003 sp1服务器上缺省安装 MS SQL Server 2005 简体中文企业版,在连接服务器时显示“不允许远程连接”。

具体显示如下:(xxxxxsql为服务器名,在本地操作)
C:\Documents and Settings\Administrator>sqlcmd -S xxxxxsql
HResult 0x2,级别 16,状态 1
命名管道提供程序: 无法打开与 SQL Server 的连接 [2].
Sqlcmd: 错误: Microsoft SQL Native Client : 建立到服务器的连接时发生错误。连接到
SQL Server 2005 时,默认设置 SQL Server 不允许远程连接这个事实可能会导致失败。

Sqlcmd: 错误: Microsoft SQL Native Client : 登录超时已过期。

解决办法:
1.查看端口,发现没有1433(SQL server的缺省端口)
C:\Documents and Settings\Administrator>netstat -ano

Active Connections

Proto Local Address          Foreign Address        State           PID
TCP    0.0.0.0:21             0.0.0.0:0              LISTENING       2900
TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       3672
TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       936
TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING       656
TCP    0.0.0.0:1030           0.0.0.0:0              LISTENING       2900
TCP    0.0.0.0:1037           0.0.0.0:0              LISTENING       3296
TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       620
TCP    1x.xx.xx.18:139        0.0.0.0:0              LISTENING       4
TCP    1x.xx.xx.18:3389       1x.xx.xx.44:1116       ESTABLISHED     620
TCP    127.0.0.1:1038         0.0.0.0:0              LISTENING       3296
UDP    0.0.0.0:445            *:*                                    4
UDP    0.0.0.0:500            *:*                                    656
UDP    0.0.0.0:1434           *:*                                    2380
UDP    0.0.0.0:2967           *:*                                    1772
UDP    0.0.0.0:3456           *:*                                    2900
UDP    0.0.0.0:4500           *:*                                    656
UDP    1x.xx.xx.18:123        *:*                                    1096
UDP    1x.xx.xx.18:137        *:*                                    4
UDP    1x.xx.xx.18:138        *:*                                    4
UDP    127.0.0.1:123          *:*                                    1096
UDP    127.0.0.1:1027         *:*                                    1096
UDP    127.0.0.1:3456         *:*                                    2900

2.进入SQL Server Configuration Manager,查看配置
SQL Server 配置管理器(本地)
->SQL Server 2005 网络配置
->HLHEBSQL 的协议
    -> TCP/IP

右键->属性

发现服务器地址IP1,未启用,端口使用的是动态端口。
按如下更改后,重新启用SQL Server服务。
注意:一定要IPALL的TCP动态端口删除,TCP端口改为1433,只改IP1不好用,在这个问题很多网上的解决办法都没有明确,走了很多的弯路!

3.     重新查看端口,可以看到1433已经打开
C:\Documents and Settings\Administrator>netstat -ano

Active Connections

Proto Local Address          Foreign Address        State           PID
TCP    0.0.0.0:21             0.0.0.0:0              LISTENING       2900
TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       3672
TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       936
TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING       656
TCP    0.0.0.0:1030           0.0.0.0:0              LISTENING       2900
TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING       1532
TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING       620
TCP    1x.xx.xx.18:139        0.0.0.0:0              LISTENING       4
TCP    1x.xx.xx.18:3389       1x.xx.xx.44:1116       ESTABLISHED     620
TCP    127.0.0.1:1038         0.0.0.0:0              LISTENING       1532
UDP    0.0.0.0:445            *:*                                    4
UDP    0.0.0.0:500            *:*                                    656
UDP    0.0.0.0:1434           *:*                                    2380
UDP    0.0.0.0:2967           *:*                                    1772
UDP    0.0.0.0:3456           *:*                                    2900
UDP    0.0.0.0:4500           *:*                                    656
UDP    1x.xx.xx.18:123        *:*                                    1096
UDP    1x.xx.xx.18:137        *:*                                    4
UDP    1x.xx.xx.18:138        *:*                                    4
UDP    127.0.0.1:123          *:*                                    1096
UDP    127.0.0.1:1027         *:*                                    1096
UDP    127.0.0.1:3456         *:*                                    2900

4. 重新执行SQLCMD,成功
C:\Documents and Settings\Administrator>sqlcmd -S xxxxxsql
1>
// 文章来源于:站补(http://www.notfind.cn/Article/View.aspx?ArticleSN=401)

原文地址:https://www.cnblogs.com/sdqxcxh/p/1798990.html