仅使用IP连接到没有实例名称的SQL Server 2008?

时间:2011-10-18 00:32:18

标签: sql-server database sql-server-2008

我与数据库维护任务无关。我是应用程序开发人员我在我的计算机上安装了SQL Server 2008 Express Edition作为实例localhost\sqlexpress

如何仅使用IP地址连接到此服务器而不是ip\sqlexpress

如果可能有多个实例且我正在连接IP,那么我该如何选择任何服务器实例?

4 个答案:

答案 0 :(得分:2)

您可以使用IP地址来引用该实例。它就像xxx.xxx.xxx.xxx\sqlexpress

如果您只是使用IP地址(或主机名),则必须在计算机上安装默认实例。如果您没有安装默认实例,那么您将无法连接,并且您将返回错误。

默认情况下,SQL Server Express是一个命名实例,需要命名实例数据源引用(ip / hostname后跟实例名称)。您需要安装Express作为默认实例才能通过ip进行引用。

换句话说,除非您已将Express安装为默认实例,否则不能仅使用IP连接到SQL Server Express实例。

答案 1 :(得分:2)

您需要在服务器名称中添加实例名称的原因是,这将允许SQL Server Browser Service根据您的实例名称帮助您查找相应的TCP / IP端口。对于默认实例(MSSQLSERVER),仅使用IP地址或主机名就足够了。

如果您只想使用IP地址,您还需要添加TCP / IP端口,例如192.168.0.1,1434。如果不允许TCP / IP端口,客户端将尝试使用TCP / IP而是1433端口。在这种情况下,如果实例未在1433端口上侦听,则连接将失败。

希望这有帮助。

答案 2 :(得分:1)

是的,在安装SQL Server Express时,只需在安装过程中选择“安装为默认实例”选项。完成后,启用端口1433,打开Windows防火墙,启用您要使用的用户帐户,以及您的好处。

然后,您可以在端口1433上连接到127.1。 JDBC url就像:

一样简单
jdbc:sqlserver://localhost

jdbc:sqlserver://127.0.0.1

答案 3 :(得分:0)

如果要查找运行实例的端口号(也适用于Std Sql服务器):

使用Management studio连接到您的实例:

执行命令

DECLARE @tcp_port nvarchar(5)
EXEC xp_regread
@rootkey    =    'HKEY_LOCAL_MACHINE',
@key        =    'SOFTWARE\MICROSOFT\MSSQLSERVER\MSSQLSERVER\SUPERSOCKETNETLIB\TCP',
@value_name    =    'TcpPort',
@value        =    @tcp_port OUTPUT
Select @tcp_port;

这将返回端口号:

因此,任何连接的服务器都将是您使用ipconfig和端口获得的IP地址。

对于在应用程序中使用大多数针对SQL Server的.NET托管提供程序的连接字符串,您可以使用以下内容:

“Server = xxx.xxx.xxx.xxxx,portNumber; Database = dbName; User Id = user; Password = jklhkljh”