Por que estou recebendo "Não é possível conectar ao servidor - erro relacionado à rede ou à instância"?

379

Eu recebo o seguinte erro ao tentar me conectar ao SQL Server:

Não é possível conectar ao 108.163.224.173.

Ocorreu um erro relacionado à rede ou à instância ao estabelecer uma conexão com o SQL Server.

O servidor não foi encontrado ou não estava acessível. Verifique se o nome da instância está correto e se o SQL Server está configurado para permitir conexões remotas.

(provedor: Provedor de Pipes Nomeados, erro: 40 - Não foi possível abrir uma conexão com o SQL Server) (Microsoft SQL Server, Erro: 1326)

Este erro é gerado quando tento configurar meu banco de dados para gridview no Visual Studio 2010. Estou sem saber como depurar esse erro.

Como você depuraria esse erro? Que etapas devo executar para determinar o que realmente está acontecendo aqui, além do mencionado na mensagem de erro?

Sasa Shree
fonte
11
Um ping não é confiável para testar a conectividade do SQL Server; a solicitação de eco do ICMP é desabilitada por padrão no Windows Server. Um nome de usuário ou senha inválido não é o que o erro está dizendo, é um erro completamente diferente.
Sean Airey
11
Tente este artigo, ele executa
Sean Airey
3
Veja minha resposta aqui com minha captura de tela, se você recebeu esse erro com o SQL Server {version} Express, ao configurá-lo pela primeira vez. Voltei ao StackOverflow e usei minha resposta novamente porque era a única que funcionava. stackoverflow.com/questions/1391503/…
MacGyver 21/01
Eu tive esse problema no meu servidor virtual quando quis me conectar ao host local. Parecia que havia algum tipo de erro ao iniciar o sistema operacional - no meu caso, tudo foi resolvido felizmente com uma reinicialização limpa.
Qohelet
Hoje, dediquei muito tempo a isso, finalmente o que funcionou para mim é: Open Sql Server Configuration Manager -> Protocolos para <INSTANCE> -> TCP / IP -> endereços IP (guia) . Vá para a última entrada IP All e mencione a porta TCP 1433 . Agora reinicie o SQL Server (INSTANCE) usando services.msc . Depois disso, o problema foi resolvido.
Ani627

Respostas:

301

Eu achei as seguintes técnicas úteis:

  1. Verifique se o mecanismo do banco de dados está configurado para aceitar conexões remotas :

    • Iniciar> Todos os Programas> SQL Server 2005> Ferramentas de Configuração> Configuração da Área de Superfície do SQL Server
    • Clique em Configuração da área de superfície para obter serviços e conexões
    • Selecione a instância que está com problemas> Mecanismo de Banco de Dados> Conexões Remotas
    • Habilitar conexões locais e remotas
    • Reiniciar instância
  2. Pode ser necessário criar uma exceção no firewall para a instância e porta do SQL Server que você está usando:

    • Iniciar> Executar> Firewall.cpl
    • Clique na guia exceções
    • Adicione sqlservr.exe (normalmente localizado em C:\Program Files (x86)\Microsoft SQL Server\MSSQL.x\MSSQL\Bin, verifique suas instalações quanto ao caminho real da pasta) e porta (o padrão é 1433)
    • Verifique sua cadeia de conexão também
  3. Verifique se o seu os serviços do servidor SQL estão funcionando corretamente:

    • Vá para Todos os Programas> Microsoft SQL Server 2008> Ferramentas de Configuração> SQL Server Configuration Manager> Serviços do SQL Server
    • Verifique se o status do serviço do SQL Server está em execução.

    Além disso, verifique se o servidor remoto está na mesma rede . Execute sqlcmd -Lpara verificar se o seu servidor está incluído na sua lista de redes.

  4. Ativar TCP / IP na configuração do SQL Server

    Quando dois ou mais servidores SQL estão conectados à rede, eles fazem toda a comunicação usando TCP / IP. A porta padrão da instalação do SQL Server é 1433. Essa porta pode ser alterada através do SQL Server Configuration Manager. O TCP / IP deve estar ativado para o SQL Server ser conectado.

    • Vá para Todos os programas >> Microsoft SQL Server 2008 >> Ferramentas de configuração >> SQL Server Configuration Manager >> Selecione TCP / IP
    • Clique com o botão direito em TCP / IP >> Clique em Ativar

    Você deve reiniciar o SQL Server Services para que todas as alterações tenham efeito. Clique com o botão direito do mouse e vá para as propriedades do menu para selecionar o local em que a porta padrão do SQL Server pode ser alterada.

Teo Chuen Bryan, Wei
fonte
10
A ativação do TCP / IP na configuração do SQL Server foi a solução para mim ao usar o SQL Server 2014 Express.
Mike Richards
73
Hoje, dediquei muito tempo a isso, finalmente o que funcionou para mim é: Abra o Sql Server Configuration Manager -> protocolos para <INSTANCE> -> TCP / IP -> endereços IP (guia) . Vá para a última entrada IP All e mencione a porta TCP 1433 . Agora reinicie o SQL Server (<INSTANCE>) usando services.msc . Depois disso, o problema foi resolvido!
Ani627
11
Eu também estava enfrentando o problema específico no meu servidor Sql local e resolvido verificando os serviços locais do sistema operacional e pesquisando os serviços Sql específicos e iniciando-os um a um. Funcionou perfeito.
Faisal Naseer
4
Eu também tive o mesmo problema, ao fazer logon no servidor sql, descobri que o serviço mssqlserer foi interrompido e o iniciei. Conseguiu conectar-se à instância agora
Rak
15
Também LEMBRE-SE para ENABLE SQL Server Browserserviço. A configuração de um número de servidores SQL no meu tempo ... No entanto, este passo sempre parece ter diferentes cenários envolvidos :)
mschr
125

Eu tenho a solução para mim:

Abra o "SQL Server Configuration Manager"

Agora clique em "Configuração de rede do SQL Server" e clique em "Protocolos para nome "

Clique com o botão direito em "TCP / IP" (verifique se está ativado) Clique em Propriedades

Agora selecione a aba "Endereços IP" e vá para a última entrada "IP All"

Digite "Porta TCP" 1433.

Agora reinicie o "SQL Server .Name." usando "services.msc" (winKey + r)

Vai funcionar...

Irshad Khan
fonte
Tentando isso, ainda por algum motivo, quando clico com o botão direito do mouse e escolho "Propriedades" em "TCP / IP" no windows10, ele não abre a janela de diálogo para isso. Os outros nós em geral na visualização em árvore exibem diálogos muito bem. Alguém tem esse problema e ideias para passar por isso?
Ryan Betker - healthNCode
3
No SQL Server 2014, use (localdb) \ mssqllocaldb em vez de (localdb) \ v11.0
Shalva Avanashvili
67
A cópia colou meu comentário (que foi postado em 24 de fevereiro de 2015 - 7 meses antes de sua postagem) como uma resposta sem me dar créditos! : P
ani627 28/07
2
Isso funcionou. Não consegui me conectar ao SQL Server 2016. Fiz essas alterações e funcionou! Obrigado.
Ankur
11
funciona para mim. bastava iniciar os serviços em "service.msc" depois de ativar o TCP / IP e os pipes nomeados no gerenciador de configuração.
Alif Noushad
100

Adicionando meu comentário altamente votado como resposta às capturas de tela.

Passei muito tempo nisso, finalmente o que funcionou para mim é:

1) Abra o Sql Server Configuration Manager -> Configuração de rede do SQL Server -> Protocolos para <(INSTANCE)> -> TCP / IP (clique duas vezes nele).

insira a descrição da imagem aqui

2) Selecione -> Endereços IP (guia) .

3) Vá para a última entrada IP All e mencione a porta TCP 1433 .

insira a descrição da imagem aqui

4) Pressione Win+Re insira services.msc .

5) Agora reinicie o SQL Server <(INSTANCE)> .

insira a descrição da imagem aqui

Depois disso, o problema foi resolvido!

ani627
fonte
Trabalhou para mim, SQL Express 2012
lost_in_magento
Trabalhou para mim no sql server 2012 após ativar o TCP, Adicionado o número da porta 1433 ao TCP ALL e reiniciar o serviço!
Chirag Khatsuriya 8/03/19
Para mim, adicionalmente, eu tinha para permitir TCP 1433 e UDP 1434 no Firewall
MarkusEgle
83

Estou resolvendo esse problema abrindo os Serviços e comece a executar o serviço Sql Server (Sqlexpress) .

service Image

Anik Saha
fonte
3
Vi onde o serviço Windows do SQL Server foi definido como Tipo de inicialização manual, portanto, não foi reiniciado em uma reinicialização. Deve ser definido como automático.
Robertburke # 7/16
2
Isso é exatamente o que eu fiz, Meu status estava em execução e o StartupType era automático, mas ainda assim enfrentei o problema, então usei serviços do tipo de janela Executar services.msce cliquei com o botão direito do mouse em SQL Server (SQL EXPRESS) no menu de contexto e apenas pare e inicie o serviço novamente e funciona bem para mim, a esperança ajuda.
shaijut 25/10
22

Este erro ocorreu principalmente quando o serviço SQL foi interrompido. Você precisa reiniciar o serviço. Para acessar esta janela, é necessário pesquisar os serviços como este- insira a descrição da imagem aqui

Em seguida, procure SQLSERVER (MSSQLSERVER) e reinicie o serviço.

insira a descrição da imagem aqui

Espero que isso funcione.

Debendra Dash
fonte
18

Pressione window + R (Run window Open)e, no tipo de janela Executar, "services.msc"e novos serviços abertos, localize o SQL SERVER com o nome da instância no meu caso. Em SQL SERVER(SQLEXPRESS)seguida, inicie este serviço e tente novamente. Ele funciona para mim. Espero que também funcione para você.insira a descrição da imagem aqui

Hafiz Asad
fonte
A resposta foi fornecida anteriormente. Não obter qualquer razão pós-lo novamente
Anik Saha
8
buddy estou enfrentando mesmo problema, mas eu não sei quente janela serviços abertos, em seguida, eu encontrei uma maneira e eu pensei compartilhar com as pessoas
Hafiz Asad
Obrigado, @HafizAsad. Sua resposta funciona para mim.
Adnan Ahmad
@AdnanAhmad, você é bem-vindo. Obrigado pela apreciação.
Hafiz Asad 30/01
16

Caso você esteja usando o Express Edition :

Adicionar "\SQLEXPRESS" após o nome do servidor

por exemplo "MY-SERVER\SQLEXPRESS"

insira a descrição da imagem aqui

Abdulrahman Bres
fonte
13

Eu tive o mesmo erro quando queria executar meu projeto WinForms (que inclui trabalhar com um banco de dados do SQL Server e que funcionou perfeitamente no meu PC) em outro PC. O problema estava no Firewall do Windows no meu PC. Eu resolvi isso adicionando duas regras. Este é todo o procedimento de como permitir o SQL Server através do Firewall do Windows:

  1. Abra "Executar" e digite services.msc
  2. Encontre o serviço para o SQL Server (nome da instância) e o SQL Server Browser. Um de cada vez, clique com o botão direito do mouse, selecione "Propriedades", copie o caminho para o arquivo exe
  3. Em seguida firewall.cpl, abra , clique em permitir um aplicativo ou adicione regra, adicione o caminho copiado anteriormente (é necessário seguir um procedimento), marque Domínio e Privado, desmarque Público.

Este é o link do YouTube onde você pode ver este procedimento: Permitir SQL Server pelo Firewall do Windows

NutCracker
fonte
Funciona perfeitamente para mim. Importante: Adicione navegador e servidor no firewall! 1
BendEg
Eu estava com dificuldade para localizar o arquivo sqlservr.exe, isso fez o truque para localizá-lo.
Stan
11

Se nenhuma das soluções acima funcionar (nada funcionou para mim), basta reiniciar o computador e você poderá se conectar ao servidor sql (host local).

Eugen Sunic
fonte
A razão pela qual isso funcionará é porque você acabou de instalar o Sql Server e não reiniciou o computador conforme a instalação solicitou. Portanto, faça-o e, em seguida, os serviços serão criados e toda a configuração necessária que está faltando.
Sterling Diaz
10

Depois de fazer tudo o que é mencionado aqui:
http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could-not-open-a- conexão com o sql-server-microsoft-sql-server-error / Ainda não funcionou para mim.

Etapas funcionaram para mim:

Start > Run > cmd > sqlcmd -L

Ele solicitará o nome do servidor. Verifique se esse nome de servidor é igual ao que você está tentando conectar na caixa CONNECT TO SERVER do SQL Management Studio.

Eu cometi esse erro bobo que continuo usando MSSQLSERVER vez disso, usando esse nome de servidor.

Espero que isso ajude as pessoas que cometem erros tolos como eu.

Obrigado.

Denn
fonte
7

Estou usando o SQL Server 2016 e o ​​Windows 10.

insira a descrição da imagem aqui

A primeira coisa é permitir a conexão remota com o SQL Server. O que fiz foi digitar sqlservermanager13.msc no menu Iniciar para abrir o SQL Server Configuration Manager. Verifique se o status TCP / IP está ativado. insira a descrição da imagem aqui

Verifique o número da porta TCP clicando duas vezes no nome do protocolo TCP / IP. Geralmente é 1433 por padrão.

insira a descrição da imagem aqui

Os procedimentos a seguir configuram o Firewall do Windows usando o snap-in Firewall do Windows com MMC (Console de Gerenciamento Microsoft) de segurança avançada. O Firewall do Windows com Segurança Avançada configura apenas o perfil atual.

Para abrir uma porta no firewall do Windows para acesso ao TCP

  1. No menu Iniciar, clique em Executar, digite WF.msc e clique em OK.
  2. No Firewall do Windows com Segurança Avançada, no painel esquerdo, clique com o botão direito do mouse em Regras de Entrada e clique em Nova Regra no painel de ações.
  3. Na caixa de diálogo Tipo de regra, selecione Porta e clique em Avançar.
  4. Na caixa de diálogo Protocolo e portas, selecione TCP. Selecione Portas locais específicas e digite o número da porta da instância do Mecanismo de Banco de Dados, como 1433, para a instância padrão. Clique em Avançar.
  5. Na caixa de diálogo Ação, selecione Permitir a conexão e clique em Avançar.
  6. Na caixa de diálogo Perfil, selecione qualquer perfil que descreva o ambiente de conexão do computador quando desejar se conectar ao Mecanismo de Banco de Dados e clique em Avançar.
  7. Na caixa de diálogo Nome, digite um nome e uma descrição para esta regra e clique em Concluir.

Outra coisa para configurar.

Para abrir o acesso ao SQL Server ao usar portas dinâmicas

  1. No menu Iniciar, clique em Executar, digite WF.msc e clique em OK.
  2. No Firewall do Windows com Segurança Avançada, no painel esquerdo, clique com o botão direito do mouse em Regras de Entrada e clique em Nova Regra no painel de ações.
  3. Na caixa de diálogo Tipo de regra, selecione Programa e clique em Avançar.
  4. Na caixa de diálogo Programa, selecione Este caminho do programa. Clique em Procurar e navegue até a instância do SQL Server que você deseja acessar pelo firewall e clique em Abrir. Por padrão, o SQL Server está em C: \ Arquivos de Programas \ Microsoft SQL Server \ MSSQL13.MSSQLSERVER \ MSSQL \ Binn \ Sqlservr.exe. Clique em Avançar.
  5. Na caixa de diálogo Ação, selecione Permitir a conexão e clique em Avançar.
  6. Na caixa de diálogo Perfil, selecione qualquer perfil que descreva o ambiente de conexão do computador quando desejar se conectar ao Mecanismo de Banco de Dados e clique em Avançar.
  7. Na caixa de diálogo Nome, digite um nome e uma descrição para esta regra e clique em Concluir.

Veja a duplicação da Microsoft Configurar um firewall do Windows para acesso ao mecanismo de banco de dados

Fred
fonte
No meu 10 a instância do servidor sql PC com Windows está em C: \ Arquivos de Programas \ Microsoft SQL Server \ MSSQL13.SQLEXPRESS \ MSSQL \ Binn \ Sqlservr.exe
Mayer Spitzer
7

Você pode testar os seguintes métodos.

  • uma

    1. Verifique a cadeia de conexão do projeto.
  • b

    1. Vá para serviços e reinicie a Instância SQLServer.
  • c

    1. Abra o 'SQLServer Configuration Manager'
    2. No painel esquerdo, selecione 'SQLServer Network Configuration' e expanda-o
    3. Selecione 'Protocolos para MSSQLServer'
    4. No painel direito dbl, clique em 'TCP / IP'
    5. Na guia "Protocolo", defina "Ativado" como "Sim".
    6. Na guia "Endereços IP", role para baixo
    7. No 'IPAll', defina 'Porta TCP' como 1433
  • d
    1. Abra 'Firewall com segurança avançada'
    2. Na guia direita, selecione 'Regras de entrada'

Na guia do meio, encontre o registro de que 'porta local' é 1433. Se você não o encontrar, tente criá-lo com os seguintes níveis

  • No menu Iniciar, clique em Executar, digite 'WF.msc' e clique em OK.
  • No painel esquerdo, clique em 'Firewall do Windows com segurança avançada'
  • No painel direito, clique com o botão direito do mouse em 'Regras de entrada' e clique em 'Nova regra'
  • Na caixa de diálogo Tipo de regra, selecione 'Porta' e clique em Avançar.
  • Na caixa de diálogo Protocolo e portas, selecione 'TCP', selecione 'Portas locais específicas' e digite o número da porta 1433, clique em Avançar.
  • Na caixa de diálogo Ação, selecione Permitir a conexão e clique em Avançar.
  • Na caixa de diálogo 'Perfil', marque o Domínio, Privado e Público e clique em Avançar.
  • Na caixa de diálogo 'Nome', digite 'Porta SQL 1433' e, para obter uma descrição, escreva a descrição por conta própria. Depois clique em Finish
  1. Em seguida, na guia do meio, clique duas vezes no item encontrado (Instância) ou no item criado com o nome 'SQL 1433 Port'.
  2. Selecione a guia 'Escopo' na caixa de diálogo aberta (Propriedades do SQL Server)
  3. No PC local, acesse google.com no seu navegador e procure 'Meu IP'.
  4. depois copie seu 'IP'
  5. Vá para o servidor remoto e, na caixa de diálogo 'SQL Server Properties' da guia 'Scope', no 'Remote IP Address' selecione a opção 'These IP Addresses' e clique no botão 'Add'
  6. Na caixa de diálogo aberta (Endereço IP), selecione a opção 'Este endereço IP ou sub-rede' e cole seu 'IP', clique no botão OK.
MohammadSoori
fonte
7

Esta solução resolve os problemas network error e o serviceservidor SQL por trás

Respondi a uma pergunta semelhante aqui, você precisa declarar o outro open Run type-> services.msc- em serviços -> sort by stoppedvocê verá vários serviços SQL paradosRight click and start

Para começar - existem 4 problemas que podem estar causando os erros comuns de conectividade do LocalDb SqlExpress Sql Server SQL Network Interfaces, error: 50 - Local Database Runtime error occurred . Antes de começar, é necessário renomear a v11 ou v12 para (localdb) \ mssqllocaldb


Troubleshooting Steps
  1. Você não tem os serviços em execução executar este cmd , net start MSSQLSERVERounet start MSSQL$ instancename
  2. Você não tem as portas do firewall configuradas aquiinsira a descrição da imagem aqui
  3. Sua instalação tem um problema / está corrompida (as etapas abaixo ajudam a dar um bom começo limpo)
  4. Você não renomeou o V11 ou 12 para mssqllocaldb / SqlServer

Descobri que o mais simples é fazer o abaixo - Anexei as fotos e as etapas para obter ajuda.


Resolution Steps:

Primeiro verifique qual instância você instalou, você pode fazer isso verificando o registro e executando o cmd

  1. cmd> Sqllocaldb.exe i
  2. cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore" se esta etapa falhar, você pode excluir com a opção dcmd> Sqllocaldb.exe d "someDb"
  3. cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
  4. cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"

SqlLOCALDb_oted.png

transformador
fonte
5

Eu estava enfrentando o mesmo problema e o problema era que eu tinha vários projetos na solução ( Webe Droid) e, apesar de ter Default projectsido escolhido Package Manager Console, usava a cadeia de conexão do Droidprojeto:

PM> update-database -Verbose
Using StartUp project 'Droid'. <-- DROID
Using NuGet project 'Web'. <-- WEB
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
<!-- BAD TARGET DATABASE -->
Target database is: 'DefaultConnection' (DataSource: .\SQLEXPRESS, Provider: System.Data.SqlClient, Origin: Convention).
System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
   [REMOVED TEXT]
ClientConnectionId:00000000-0000-0000-0000-000000000000
Error Number:-1,State:0,Class:20
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

Depois de definir o Startup Projectto Webe o Default Projectin Package Manger Console, consegui que funcionasse.

Westerlund.io
fonte
5

Preciso executar o serviço Navegador do SQL Server no SQL Server Configuration Manager . A instalação não pode descobrir o serviço recém-criado sem isso.

MarkosyanArtur
fonte
11
Ainda não estou lá, mas estou chegando mais perto. No Visual studio, depois de fazer isso, também desconecte e reconecte, obtendo o mesmo erro ainda, mas agora, pelo menos por trás do VS2015, não consigo criar tabelas e bancos de dados que crio costura para executar agora. (eA, nenhum ícone cruz escura sobre eles)
user3800527
11
note que após o comando, isso resultou no nome do servidor em uma máquina local Iniciar> Executar> cmd> sqlcmd -L
user3800527
4

Enquanto as soluções acima devem funcionar em 90% dos casos, mas se você ainda estiver lendo esta resposta !!! Você provavelmente está tentando se conectar a um servidor diferente do pretendido. Pode ser que um arquivo de configuração aponte para um servidor SQL diferente daquele que você pensa que está tentando conectar.

Aconteceu comigo pelo menos.

Arjmand
fonte
11
Isso também aconteceu comigo. Deveria ter verificado isso antes de verificar a tentativa de diagnosticar o firewall. Eu tive a seqüência de conexão certa, mas eu estava executando o projeto errado na solução ...
VSO
4

Mudei de um laptop de trabalho no Windows 7 para um laptop de trabalho no Windows 10. Eu estava usando o SSMS2016 no Windows 7 com êxito.

O mesmo problema foi aplicado usando o SSMS2012 ou o SSMS2016. Meu acesso aos 10 servidores sql usando autenticação do Windows ainda era o mesmo. Eu poderia testar isso de outro servidor. No entanto, dois dos 10 servidores não se conectariam no meu laptop . Ambos eram ms sql server 9, mas eu podia conectar-me a outros bancos de dados sql server 9.

A solução foi adicionar uma regra de firewall (usando o Firewall do Windows com Segurança Avançada).

Crie uma regra de entrada para cada SSMS, por exemplo, C: \ Arquivos de Programas (x86) \ Microsoft SQL Server \ 130 \ Ferramentas \ Binn \ ManagementStudio \ Ssms.exe

Como não sou especialista em rede, não incluí os detalhes, mas espero que ele aponte a direção certa.


Mensagem de erro (regra anterior ao firewall) "Ocorreu um erro relacionado à rede ou à instância ao estabelecer uma conexão com o SQL Server. O servidor não foi encontrado ou não estava acessível. Verifique se o nome da instância está correto e se o SQL Server está configurado para permitir conexões remotas. (provedor: SQL Network Interfaces, erro: 26 - Erro ao localizar servidor / instância especificado) (.Net SqlClient Data Provider) "

JohnC
fonte
4

Por que esse erro é tão chato e barulhento, apenas porque pode ocorrer em situações variadas.

Eu fiz todas as aproximações acima aqui e ainda estou sendo sugado. Portanto, verifique se você fez o mesmo que eu antes de navegar para baixo.

Talvez eu não consiga consertar sua situação instantaneamente, mas posso apontar uma direção ou pensar em você (Aquele que finalmente desliza para baixo aqui). Comecei a ponderar sobre o erro do meu programa em execução ocorrendo depois de ter certeza de que o nome da instância está claramente correto e definir meu banco de dados para permitir o controle remoto seguindo os métodos acima. Depois disso, suspeitei que algo de errado estivesse acontecendo no meu trecho de código da conexão SQL.

Solução do meu problema:

  • Verifique minha função sqlconnection

  • Clique para ver sua configuração

  • Nova conexão

insira a descrição da imagem aqui

  • Selecione o nome do servidor

insira a descrição da imagem aqui

Ele trabalha para mim pensando no que exatamente acontece no processo de conexão. Espero que meu pensamento o leve a matar o erro.

Chase07
fonte
Isso me ajudou a descobrir que eu precisava REMOVER o número da porta para uma cadeia de conexão LocalDB, ao usar o Entity Framework.
ryanwebjackson
4

Tentei todas as outras respostas sobre essa pergunta e algumas, se não todas, provavelmente contribuíram para que isso funcionasse para mim, mas ainda não consegui me conectar ao banco de dados remotamente. Eu estava usando um SQL Server em uma VM do Azure.

Por fim, lembrei-me de que a VM tinha pontos de extremidade controlados pelo proxy da conta do Azure, então fui para o Portal do Azure e adicionei 1433 como um ponto de extremidade disponível e pude me conectar à minha instância SQL.

Espero que isso ajude alguém que tentou todas as outras respostas e ainda não está tendo sorte!

John
fonte
4

Sumário

Para corrigir esse problema encontrado ao executar o aplicativo local versus o banco de dados remoto , use o SQL Server Configuration Manager para adicionar um alias ao banco de dados remoto.

Detalhes

Eu tive esse problema recentemente ao fazer a transição de um laptop com Windows 7 para um Windows 10. Eu estava executando um ambiente local de desenvolvimento e tempo de execução acessando nosso banco de dados Dev em um servidor remoto. Acessamos o banco de dados Dev por meio de uma configuração de alias de servidor por meio do SQL Server Client Network Utility (cliconfg.exe). Depois de confirmar que o alias foi configurado corretamente nas versões de 64 e 32 bits do utilitário e que o servidor de banco de dados estava acessível a partir do novo laptop via SSMS, ainda recebi o erro visto pelo OP (não pelo endereço IP do OP, em inglês). curso).

Era necessário usar o SQL Server Configuration Manager para adicionar um alias ao servidor de banco de dados Dev remoto. Corrigido as coisas.

insira a descrição da imagem aqui

Bill Needels
fonte
4

Você pode verificar o status do serviço do MS SQL Server 2014. No Windows 7, você pode fazer isso:

  1. Vá para pesquisar e digite "SQL Server 2014 Configuration Manager
  2. Em seguida, clique em "Serviço SQL Server" no menu esquerdo
  3. Verifique a instância do status do serviço do SQL Server se estiver parado ou em execução
  4. Se ele parou, altere o status para execução e faça logon no SQL Server Management Studio 2014
Chamara
fonte
3

Meu problema começou quando tentei alterar o servidor do IIS Express para o IIS local (enquanto usava o LocalDB ).

insira a descrição da imagem aqui

Eu estava usando o LocalDB (para fins de desenvolvimento) e, quando fui reverter do IIS local para o IIS Express, o Visual Studio mudou minha fonte de dados de Fonte de dados = (LocalDb) \ MSSQLLocalDB para Fonte de dados =. \ SQLEXPRESS

Cadeia de conexão incorreta

<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SurveyTestsDB.mdf;Initial Catalog=SurveyTestsDB;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />

Cadeia de conexão correta

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\SurveyTestsDB.mdf;Initial Catalog=SurveyTestsDB;Integrated Security=True" providerName="System.Data.SqlClient" />

Espero que isto seja útil a alguém.

megamaiku
fonte
Além disso, não cometa o erro bobo de usar / em vez de \ na cadeia de conexão.
andrew pate
3

Além de tentar tudo conforme sugerido por Teo Chuen Wei Bryan, verifique se você também está se referindo ao nome correto do servidor / instância na cadeia de conexão.

Se você estiver usando o formato abreviado de nome do host / Instância no servidor de banco de dados ou no arquivo web.config, certifique-se de usar o nome de domínio totalmente qualificado (FQDN) / Instância

Além disso, para testar a conectividade de um servidor em que o cliente SQL Server NÃO está presente,

-> crie um arquivo de texto e altere sua extensão para .udl

-> Clique com o botão direito do mouse no arquivo e você poderá ver a guia de conexão.

-> Insira o nome do servidor e faça logon nas informações para testar a conexão com o servidor de banco de dados.

Espero que isto ajude.

SanthoshM
fonte
3

Se você encontrar esse erro repentinamente em um ambiente de produção e nada mudou, tente os 4 itens a seguir na ordem abaixo para ver se ele foi corrigido.

  1. reinicie o serviço do servidor sql.
  2. reinicie o serviço (digamos IIS) que está chamando no servidor sql. (o problema provavelmente está aqui se o tempo entre o início da chamada de serviço para o servidor SQL e o tempo em que você receber o erro de resposta for super curto (cerca de um ou dois segundos).
  3. reinicie o servidor sql server está ativado.
  4. reinicie o servidor em que o serviço de chamada está ativado.
Barka
fonte
3

Quando tive esse erro no Visual Studio,

“Ocorreu um erro relacionado à rede ou à instância ao estabelecer uma conexão com o SQL Server. O servidor não foi encontrado ou não estava acessível. Verifique se o nome da instância está correto e se o SQL Server está configurado para permitir conexões remotas. (provedor: provedor de pipes nomeados, erro: 40 - não foi possível abrir uma conexão com o SQL Server) ”

... foi durante a execução do código C # a seguir, que estava tentando obter meus dados do SQL Server para exibi-los em uma grade. A quebra ocorreu exatamente na linha que diz connect.Open ():

        using (var connect = Connections.mySqlConnection)
        {
            const string query = "SELECT Name, Birthdate, Narrative FROM Friends";
            using (var command = new SqlCommand(query, connect))
            {
                connect.Open();
                using (var dr = command.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        // blah
                    }
                }
            }
        }

Isso era inexplicável porque a consulta SQL era muito simples, eu tinha a string de conexão correta e o servidor de banco de dados estava disponível. Decidi executar manualmente a consulta SQL real no SQL Management Studio e ela funcionou muito bem e gerou vários registros. Mas uma coisa se destacou nos resultados da consulta: havia algum texto HTML codificado incorretamente dentro de um campo do tipo varchar (max) na tabela Friends (especificamente, alguns símbolos de comentários codificados da classificação <!--apresentada nos dados da coluna "Narrativa"). A linha de dados suspeitos tinha a seguinte aparência:

Name    Birthdate    Narrative
====    =========    ============== 
Fred    21-Oct-79    &lt;!--HTML Comment -->Once upon a time...

Observe o símbolo HTML codificado " &lt;", que representava um caractere "<". De alguma forma, isso entrou no banco de dados e meu código C # não pôde pegá-lo! Sempre falhava na linha connect.Open ()! Depois que editei manualmente essa linha de dados na tabela de banco de dados Friends e coloquei o caractere "<" decodificado, tudo funcionou! Aqui está como essa linha deveria ser:

Name    Birthdate    Narrative
====    =========    ============== 
Fred    21-Oct-79    <!--HTML Comment -->Once upon a time...

Eu editei a única linha ruim que eu tinha usando esta simples instrução UPDATE abaixo. Mas se você tiver várias linhas ofensivas de HTML codificado, poderá precisar de uma instrução UPDATE mais elaborada que use a função REPLACE:

UPDATE Friends SET Narrative = '<!--HTML Comment -->Once upon a time...' WHERE Narrative LIKE '&lt%'

Portanto, a moral da história é (pelo menos no meu caso), higienize seu conteúdo HTML antes de armazená-lo no banco de dados e você não receberá esse erro enigmático do SQL Server! (Sanitizar / decodificar adequadamente seu conteúdo HTML é o assunto de outra discussão digna de uma pesquisa separada do StackOverflow, se você precisar de mais informações!)

ShieldOfSalvation
fonte
3

Tente adicionar um ,e um número de porta (como em ,1433) ao final da sua cadeia de conexão.

Kalyan Hurkat
fonte
3

O arranjo de tags XML no Web.config é importante

Primeiro

<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>

Depois de

<connectionStrings>
  <add name="SqlConnectionString" connectionString="Data Source=.; Initial Catalog=TestDB; Trusted_Connection=True;" providerName="System.Data.SqlClient" />
</connectionStrings>
pejman
fonte
3

Na minha situação, o serviço MSSQLSERVER tinha um problema, por isso reiniciei o serviço e o problema foi resolvido.

Por isso, recomendo ir ao aplicativo Services: chave do Windows, procure "Services" e encontre sua instância do Sql normalmente "SQL Server (MSSQLSERVER)" em para Microsoft sql server. Clique com o botão direito do mouse no serviço e clique em Iniciar, se desativado, clique em Reiniciar.

Mohamad Reza Shahrestani
fonte
2

Este erro ocorre quando sua instância do servidor sql é stopped.

Vá para todos os programas> SQL Server> ferramentas de configuração> SQL SERVER CONFIGURATION MANAGER

em seguida, clique em SQL sERVER SERVICES, a lista de instâncias aparecerá, selecione a instância em questão e clique no ícone play na barra de ferramentas superior. Espero que isso ajude.

esta resposta é muito tarde (mas antes tarde do que nunca;)

Alex
fonte
2

Resolvi esse problema definindo o projeto que utiliza o Entity Framework como o projeto de inicialização e, em seguida, execute o comando "update-database".

user1796440
fonte