我用程序登陆本机(或者局域网内)上的SQL Server2000时用机器名和Localhost可以登陆.用IP地址不可以登陆是什么原因呢?

时间:2021-12-15 17:57:16
我用程序登陆本机(或者局域网内)上的SQL Server2000时用机器名和Localhost可以登陆.用IP地址不可以登陆是什么原因呢?

可以排除登陆的程序的问题.因为登陆其他机器的SQL Server没有问题.是不是SQL Server有什么设置的问题啊?怎么解决?

原来碰到过这种情况重新安装SQL Server就没有问题了.可是这次机器不能随便重新安装.我很着急使用,请高手指点如何去作.

非常谢谢!!

9 个解决方案

#1


IP地址和网卡是绑定的,如果网卡工作不正常(TCP/IP)协议或者禁用怎么的,那么IP地址就不可使用,即使在本机使用本机的IP地址都不可以;
其实要是连接本机的SQL SERVER,在ADO连接中 SERVER="" 都可以了,默认是连接本机的。

#2


就是说在本机如果有网卡,tcp/ip协议也配置好了,如果你没有起用本地连接 或者没有用网线连接到其他电脑或者连接设备上,这时,网卡是不起作用的,ping本机的ip都ping不通,ip地址就失去了意思。

#3


tcp/ip协议重新装一下试试看!

#4


1.SQL Server服务器--开始--程序--Microsoft SQL Server
--服务器网络实用工具
--看看启用的协议中,有没有"TCP/IP"

  如果没有的话,那就肯定不能用IP地址连接的,因为IP地址是使用TCP/IP协议的
  不启用TCP/IP就禁用了IP地址连接

#5


2.如果已经启用了TCP/IP,则在"服务器网络实用工具",点属性,看看默认端口是多少
  如果不是1433,则连接的时候要用: IP地址,端口号  做为sql服务器名来连接


3.如果还是不行,检查你的TCP/IP协议是否工作正常,最好是删除重新安装一次
  一般的检查方法是:
  a.保证ping <服务器IP地址> 通(有防火墙的先关闭防火墙)
  b.在命令提示符下执行:telnet <服务器ip地址> 1433 不会报错

#6


4.可能是你和TCP/IP协议不是默认协议(当前使用的协议)

回复人: leimin(黄山光明顶) 
 
这是因为在WINDOWS 2000以后的操作系统中,MS为解决SQL SERVER的安全问题将TCP/IP配置
为SQLSERVER的默认连接协议,你可以在CLIENT NETWORK UTILITY中看到TCP/IP和NAME PIPE
的顺序。

你也可以在:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib]
"ProtocolOrder"=hex(7):74,00,63,00,70,00,00,00,00,00
看到默认的协议。

2.怎么在程序中更改Named Pipes , Tcp/ip ,其sql语句怎么写?
你可以在上面提到的注册表的位置修改:
CLIENT端:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib]
"ProtocolOrder"=hex(7):74,00,63,00,70,00,00,00,00,00

SERVER端:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib]
"ProtocolOrder"=hex(7):74,00,63,00,70,00,00,00,00,00

#7


学习,顶.

#8


学习!

#9


谢谢大家.我正在试验.

#1


IP地址和网卡是绑定的,如果网卡工作不正常(TCP/IP)协议或者禁用怎么的,那么IP地址就不可使用,即使在本机使用本机的IP地址都不可以;
其实要是连接本机的SQL SERVER,在ADO连接中 SERVER="" 都可以了,默认是连接本机的。

#2


就是说在本机如果有网卡,tcp/ip协议也配置好了,如果你没有起用本地连接 或者没有用网线连接到其他电脑或者连接设备上,这时,网卡是不起作用的,ping本机的ip都ping不通,ip地址就失去了意思。

#3


tcp/ip协议重新装一下试试看!

#4


1.SQL Server服务器--开始--程序--Microsoft SQL Server
--服务器网络实用工具
--看看启用的协议中,有没有"TCP/IP"

  如果没有的话,那就肯定不能用IP地址连接的,因为IP地址是使用TCP/IP协议的
  不启用TCP/IP就禁用了IP地址连接

#5


2.如果已经启用了TCP/IP,则在"服务器网络实用工具",点属性,看看默认端口是多少
  如果不是1433,则连接的时候要用: IP地址,端口号  做为sql服务器名来连接


3.如果还是不行,检查你的TCP/IP协议是否工作正常,最好是删除重新安装一次
  一般的检查方法是:
  a.保证ping <服务器IP地址> 通(有防火墙的先关闭防火墙)
  b.在命令提示符下执行:telnet <服务器ip地址> 1433 不会报错

#6


4.可能是你和TCP/IP协议不是默认协议(当前使用的协议)

回复人: leimin(黄山光明顶) 
 
这是因为在WINDOWS 2000以后的操作系统中,MS为解决SQL SERVER的安全问题将TCP/IP配置
为SQLSERVER的默认连接协议,你可以在CLIENT NETWORK UTILITY中看到TCP/IP和NAME PIPE
的顺序。

你也可以在:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib]
"ProtocolOrder"=hex(7):74,00,63,00,70,00,00,00,00,00
看到默认的协议。

2.怎么在程序中更改Named Pipes , Tcp/ip ,其sql语句怎么写?
你可以在上面提到的注册表的位置修改:
CLIENT端:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SuperSocketNetLib]
"ProtocolOrder"=hex(7):74,00,63,00,70,00,00,00,00,00

SERVER端:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib]
"ProtocolOrder"=hex(7):74,00,63,00,70,00,00,00,00,00

#7


学习,顶.

#8


学习!

#9


谢谢大家.我正在试验.