注意:我显然已经将服务器名称和IP更改为虚拟名称。
这是怎么回事。我有一台服务器,我称之为服务器,MYSERVER
运行Microsoft SQL Server Express2005。就在这台服务器本身上,我已经建立了一个指向自身的ODBC连接,并且已经可以正常使用了。我使用SQL Server身份验证(不是Windows身份验证)登录,其设置如下:
就像我说的那样,一个有效。但是接下来,我有一台位于完全不同的域/不在Intranet上的计算机,该计算机需要访问MYSERVER上托管的同一SQL Server。因为它在不同的域上,所以无法识别名称“ MYSERVER”;我必须将其指向MYSERVER的IP地址,即123.456.789.012。但是ODBC连接似乎在那儿不起作用。我试图这样设置:
这行不通。当我输入用户名和密码并按下一步时,它将停顿10至20秒钟,然后最终返回以下错误:
Connection failed:
SQLState: '01000'
SQL Server Error: 1326
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()).
Connection failed:
SQLState: '08001'
SQL Server Error: 17
[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied.
如果我尝试相同的操作,但是将“服务器”从更改为123.456.789.012\SQLEXPRESS
普通旧123.456.789.012
,则会收到不同的错误:
Connection failed:
SQLState: '01000'
SQL Server Error: 14
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Invalid Instance()).
Connection failed:
SQLState: '08001'
SQL Server Error: 14
[Microsoft][ODBC SQL Server Driver][DBNETLIB]Invalid connection.
现在我知道你在想什么。您可能会想,“ du,您可能没有打开虚拟端口1433的防火墙。” 除非我这样做,并且我验证了这一点,否则我可以成功运行:
telnet 123.456.789.012 1433
...从命令行中获取所有我想要的。所以我不确定该怎么办。我知道SQL Server存在,可以正常工作,并且可以正确设置ODBC连接。我只是不确定是什么原因导致连接错误而导致这些错误。基于我列出的后一个错误,似乎它可以连接到服务器,但是根本找不到该实例(因为我当时没有指定一个实例)。那是否意味着我只需要使用一些不同的语法来指定实例名称和IP?我该怎么办?提前致谢。