Como especificar um número de porta na cadeia de conexão do SQL Server?


139

Eu uso a seguinte cadeia de conexão no SQL Server Management Studio. Falha ao conectar:

mycomputer.test.xxx.com:1234\myInstance1

Mas o seguinte está ok:

mycomputer.test.xxx.com\myInstance1

Então, como faço para especificar um número de porta em uma cadeia de conexão?


Respostas:


260

Use uma vírgula para especificar um número de porta com o SQL Server:

mycomputer.test.xxx.com,1234

Não é necessário especificar um nome de instância ao especificar a porta.

Muitos outros exemplos em http://www.connectionstrings.com/ . Isso me salvou algumas vezes.


6
Cada instância deve estar em uma porta separada, portanto port = instance no servidor Sql. Eu nunca conheci esse "porto" até agora - obrigado.
Daniel Williams

1
@ Daniel: sim, você precisa especificar porta ou instância.
precisa

8
Nota: o nome da instância é ignorado quando a porta é especificada. Portanto, "mycomputer.test.xxx.com \ AnyOldRubbish, 1234" ainda funciona.
gbn 14/03

69
Eu perdi quase um dia inteiro tentando descobrir isso. Alguém na Microsoft deve ser baleado por isso. Eles não apenas se encarregam de criar uma convenção totalmente nova para delimitar um endereço de porta (eles não podem usar apenas dois pontos como o resto do mundo), mas não se incomodam em fazer um teste no SQL Server Management Studio para que você tenha algum tipo de dica sobre o que está acontecendo.
PrgTrdr

1
Como isso funciona se a instância padrão (MSSQLSERVER) não estiver em execução no 1433?
Mark Richman

12

Para o JDBC, o formato adequado é um pouco diferente e da seguinte maneira:

jdbc:microsoft:sqlserver://mycomputer.test.xxx.com:49843

Observe os dois pontos em vez da vírgula.


1
Eu mudei de C # para Java, e essa resposta me salva. Novamente.
smwikipedia

1
Incrível, feliz por ter ajudado. Documentação não exatamente intuitiva em Java para a cadeia de conexão JDBC. Também não sei por que é diferente, o que é irritante.
21715 Shane

1

A cadeia de conexão SQL correta para SQL com porta especificada é usar vírgula entre o endereço IP e o número da porta como o seguinte padrão: xxx.xxx.xxx.xxx, aaaa


-2

No próprio nome do servidor, você pode adicionar o número da porta como este

Server="servername:XXXXX"

Substitua XXXXX pelo número da porta.

Sua cadeia de conexão seria semelhante à abaixo

<connectionStrings>
    <add name="ConnectionStringSQL" 
         connectionString="server=servername:XXXXX;database=databasename;uid=XXX;pwd=XXXXXXX"
         providerName="System.Data.SqlClient" />
</connectionStrings>

4
C # usa uma vírgula entre o nome do servidor e o número da porta, não dois pontos.
Dymas
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.