Não consigo conectar ao banco de dados SQL dos meus servidores por meio de um endereço IP

45

Eu configurei um servidor que executa o Windows Server 2008 e tem o SQL Server 2008 Express instalado.

Posso conectar ao banco de dados SQL Server Express da máquina através do MACHINENAME/SQLEXPRESS.

No entanto, quando chegamos à conexão através de qualquer software ou script usando um endereço IP, ele não permite a conexão.

Eu tentei:

  • Desligando o Firewall.
  • Permitindo conexões remotas para o banco de dados SQL.
  • Habilitando o TCP / IP na configuração do SQL.

Quando tentamos conectar através do software 'SQL Server Management Studio', recebemos a seguinte mensagem:

Mensagem de erro:

Ocorreu um erro ao estabelecer uma conexão com o servidor. Ao conectar-se ao SQL Server 2005, essa falha pode ser causada pelo fato de que, nas configurações padrão, o SQL Server não permite conexões remotas. (provedor: TCP Provider, erro: 0 - Nenhuma conexão pôde ser estabelecida porque a máquina de destino a recusou ativamente.) (Microsoft SQL Server, Erro: 10061)

Uma conexão foi estabelecida com sucesso com o servidor, mas ocorreu um erro durante o processo de login. (provedor: TCP Provider, erro: 0 - Uma conexão estabelecida foi interrompida pelo software em sua máquina host.) (Microsoft SQL Server, Erro: 10053)

Você pode informar-me quando estiver de graça, para que possamos dar uma olhada, porque eu pareço saber onde, alterei os detalhes de acordo com algumas informações que a UK Fast me enviou, mas eles disseram "Não está dentro do mandato de suporte" , então eles não podem ajudar mais.

Estou ansioso para ouvir de você.

Shaun Swales
fonte
Você tentou anexar o número da porta ao conectar?
Você está tentando se conectar a "192.168.0.1/SQLEXPRESS" (onde 192.168.0.1 é realmente o endereço IP do seu servidor ) ou está omitindo o nome da instância?
Rowland Shaw
2
Você está realmente usando uma barra /e não uma barra `\`?
Aaron Bertrand

Respostas:

78

O SQL Server é instalado como instância nomeada, por isso, antes de tudo tente conectar ao seu servidor usando o seguinte nome do servidor: IP Address\SQLEXPRESS.
Quando você instala o SQL Server como instância nomeada, ele usa portas TCP / IP dinâmicas por padrão; portanto, não é possível conectar-se a ela sem especificar o nome da instância (apenas o endereço IP). Se você precisar se conectar ao servidor sem usar o nome da instância, precisará reconfigurar o servidor para usar a porta TCP estática. Para fazer isso, faça o seguinte:

  1. abra o SQL Server Configuration Manager;
  2. mudar para o SQL Server Network Configuration | Protocols for SQLEXPRESS;
  3. clique duas vezes no TCP/IPprotocolo;
  4. selecione o Yesvalor no Enabledcampo;
  5. mudar para a IP Addressesguia;
  6. encontre a IPAllseção;
  7. limpe o TCP Dynamic Portscampo nessa seção;
  8. especifique o 1433valor no TCP Portcampo:
    insira a descrição da imagem aqui
  9. reinicie o servidor
    Tente conectar-se ao servidor usando apenas o endereço IP.
levitologista
fonte
7
Obrigado por fornecer essas informações, elas funcionam muito bem, exceto por uma coisa. No sql management studio, ainda preciso fornecer a porta para conectar ao servidor, como xxxx \ instance, 1433. Eu acho isso meio estranho, já que estou usando a porta padrão.
Tomas Jansson
1
Funcionou para mim, exceto exatamente pelo contrário do que o @TomasJansson relatou: funciona no Management Studio sem um número de porta, mas tenho que especificar um na minha cadeia de conexão, mesmo que seja difícil usar a porta padrão (1433).
Lpacheco 24/07/2015
Além da excelente resposta acima, no SQL Server 2017, percebi que você não pode deixar o campo de senha do usuário (especialmente sa) em branco. Verifique se você tem uma configuração de senha - caso contrário, ela não se conectará.
aLearner
USE netstat -a -b e localize o sqlservr.exe e verifique se a porta é 1433. Nem sempre é o caso. Você vai enlouquecer de outra maneira.
jwize 24/07
8

Você deve ativar, seguindo para mim o problema resolvido, permitindo seguir e reiniciar todos os serviços.

  • Memoria compartilhada
  • TCP / IP
  • Tubos nomeados

Canais nomeados de configuração do SQL Server

Baljeetsingh
fonte
8

Usando o SQL Server Express 2017, além das respostas acima, ao tentar conectar-se usando a porta, verifique se você usa a sintaxe de vírgula , não a sintaxe de dois pontos, ou seja:

 MyServerName,1433\InstanceName

Depois de lutar com o acima por algumas horas, seguindo todas as sugestões, e ainda não conectando, usei o acima, e ele se conectou imediatamente através do SQL Server Management Studio remotamente. Um primeiro passo para o sucesso.

Brad
fonte
1
Isso foi corrigido para mim (movendo a porta entre o nome do servidor e o nome da instância). Entrar na porta no final não funcionou.
masospaghetti
1

Consegui conectar-me remotamente especificando explicitamente o número da porta dinâmica; no entanto, isso obviamente não é o ideal.

Parece que o problema foi que o serviço Navegador do SQL Server foi desativado. Depois de ativar e iniciar esse serviço, consegui conectar-me remotamente, simplesmente especificando o nome do host e o nome da instância.

RobSiklos
fonte
0

Apenas adicionando ao que foi dito anteriormente. Eu tive o mesmo problema de não conseguir conectar-me ao servidor (cliente e servidor na mesma área de trabalho) e executei todas as etapas listadas aqui tentando corrigi-lo. No entanto, eu finalmente descobri qual era o problema. Tudo o que eu precisava fazer era entrar no SQL Server Management Studio e clicar em "Serviços do SQL Server" e, em seguida, clicar uma vez no servidor ao qual eu precisava me conectar. Em seguida, clique no botão verde 'executar'. Não tenho certeza se isso era específico para mim, pois meu computador estava rodando e acessando o servidor; espero que ajude outras pessoas por aí!

Onde o botão executar / iniciar está

Kuolema
fonte
1
como diabos esse comentário foi tão subestimado? simples e fixa o meu problema asswell
Cavid Hummatov