我正在使用“test.udl”来测试连接。
当我使用路由器的IP时,可以连接测试成功。
然后我尝试使用真实IP来测试连接,它失败了。
路由器设置如下: Archer C2>转发>虚拟服务器:
服务端口=1433,1434,49172
IP地址=192.168.0.100(永久)
而且我已经关闭了windows中的防火墙。
Sql 服务器配置管理器设置:
TCP IP 属性>IP 地址> IP1:
主动:是
启用:是
IP地址:119.246.x.x
TCP 动态端口:0
TCP 端口:空(未设置)
IP2:
主动:是
启用:是
IP地址:192.168.0.100
TCP 动态端口:0
TCP 端口:空(未设置)
test.udl测试信息:
测试失败
服务器名称:119.246.x.x\server
使用 Windows NT 集成安全性
结果:
由于初始化提供程序时出错,测试连接失败。
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或访问被拒绝。
测试成功
服务器名称:192.168.0.100服务器
使用 Windows NT 集成安全性
结果:
测试连接成功。
有谁知道我哪里错了?
这是一个错误。
症状
当您尝试使用“servername\instancename”语法连接到群集 Microsoft SQL Server 2005 或 Microsoft SQL Server 2000 命名实例时,您会收到以下错误消息: [DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或访问被拒绝。 当满足以下条件时,您可能会收到此错误消息:
SQL Server 2005 or SQL Server 2000 is installed on a cluster.
You are connecting to a SQL Server named instance by using TCP/IP sockets.
IPSec policy is enabled on the client domain.
IPSec policy is not enabled on the server domain.
原因
此问题发生在连接的发现阶段。当源 IP 发生变化时,客户端上的 IPSec 策略会丢弃来自服务器的数据包。
解决方法
要解决此问题,您必须对 SQL Server 命名实例的 TCP 端口或命名管道进行硬编码。为此,请使用类似于以下之一的连接字符串:
[oledb] ;硬编码 TCP OLE DB initstring 提供程序=SQLOLEDB.1;集成安全性=SSPI;持久安全性>信息=False;用户ID=clientID;数据源=tcp:TcpIpAddress,端口
[oledb] ;硬编码命名管道 OLE DB initstring 提供程序=SQLOLEDB.1;集成安全性=SSPI;持久安全性>Info=False;用户ID=clientID;数据源=np:\ServerName\pipe\MSSQL$InstanceName\sql\query
*来源取自https://support.microsoft.com/en-us/kb/888228
希望有帮助
我已经解决了。可能是默认端口不是1433的原因。 我检查了日志文件查看器(SQL Server Management studio>SQL Server Agent>错误日志>当前(存档也有效))
仅勾选 sql server 复选框
找到“服务器正在监听[127.0.0.1 xxxx]。
我的情况是 9662/9663
我将它们全部添加到我的路由器中并成功连接。
谢谢以上大家。