Não consigo conectar ao meu banco de dados de um site. Eu recebo este erro:
Provedor de pipes nomeados, erro: 40 - Não foi possível abrir uma conexão com o SQL Server
Tentei usar o endereço IP local para conectar-se e também um público. Eu tentei:
- Sim, o site pode se comunicar com o servidor
- Canais nomeados / TCP está ativado.
- Conexões remotas são permitidas.
- O Firewall do Windows está desativado
- Criou uma exceção para a porta 1433 no Firewall do Windows.
- Habilitou tudo no SQL Server Configuration Manager.
O que mais posso fazer aqui?
Respostas:
Resolver esse problema é muito fácil:
Captura de tela das etapas:
fonte
E a solução mais simples - verifique se a barra está de volta ...
Passei cerca de uma hora tentando descobrir o que há de errado com SERVER / INSTANCENAME quando tudo está configurado corretamente, nomeado pipes, direitos de acesso de usuário ... e de repente me ocorreu que não era uma barra, é uma barra invertida (
\
).O horror, a vergonha ...
fonte
Server=MyServerName\DOLPHIN=Trusted_Connection=True;Database=DolphinPlatform
durante o desenvolvimento (C #), eu estava me conectando a um servidor MSSQL 2017 instalado localmente, mas quando fui implantá-lo, o servidor remoto instalado pelo fornecedor de software estava sendo executado como umInstance
. Fiquei pensando que era um problema de autenticação porque estava sendo executado como um serviço ou algo assim até que eu encontrei isso.É um processo de três etapas realmente após a instalação do SQL Server:
Reinicie o servidor SQL Config Manager -> Serviços do SQL Server -> SQL Server (SQLEXPRESS) -> Clique com o botão direito do mouse -> Reiniciar
Use nomes de servidor e instância adequados (ambos são necessários!) Normalmente, seria . \ SQLEXPRESS , por exemplo, veja a captura de tela na caixa de diálogo de conexão QueryExpress.
Aí está.
fonte
Acabei de instalar o desenvolvedor do SQL SERVER 2012. Quando eu estava criando meu primeiro pacote SSIS, recebi esse erro de pipes ao tentar criar uma tarefa de conexão de dados no SQL Server 2012 Data Tools na caixa Gerenciador de conexões. Eu resolvi com a ajuda do post acima.
Se escolher uma instância nomeada e você chamar sua instância nomeada SSQDatabase1 e o nome do seu PC for PCX1. Você deve inserir PCX1 \ SSQDatabase1 e não apenas SSQDatabase1 ou receberá o erro de pipes nomeados.
fonte
Um thread no MSDN Social, Re: Named Pipes Provider, erro: 40 - Não foi possível abrir uma conexão com o SQL Server , possui uma lista bastante decente de possíveis problemas relacionados ao seu erro. Você pode querer ver se algum deles pode ser o que você está enfrentando.
fonte
ip.ip.ip.ip/NamedInstance
?Acabei de ativar o TCP / IP, VIA, pipes nomeados no gerenciador de configuração do Sql Server, meu problema foi resolvido, consulte isso para obter mais informações Resolvendo o erro de pipes nomeados 40
fonte
Use SERVER \\ INSTANCE NAME. Usar a barra invertida dupla no meu projeto resolveu o meu problema.
fonte
@"server\instance"
ou"server\\instance"
deve funcionar. Se estiver em um arquivo de configuração, você só quer o servidor de texto sem formatação \ instance.Graças a Damian ...
Canais nomeados TCP / IP ... ambos ativados
Configuração da Web .... (para host local)
fonte
Teve o mesmo problema. Passou 6 horas quando teve que migrar alguns servidores. Tentei todas as sugestões disponíveis sobre este tópico e outros.
A solução foi tão simples quanto a reinicialização do servidor!
fonte
no meu caso, eu tinha um servidor independente, alterei a porta padrão da porta do servidor sql 1433 no gerenciador de configuração para algum número e reiniciei o serviço de serviço sql para entrar em vigor. para o servidor. mas não consegui conectar da minha máquina local através do servidor sql, estava recebendo o erro:
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
esse 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: 5)
Eu verifiquei e verifiquei todos os itens abaixo
-Pipes nomeados / TCP está ativado. Conexões remotas são permitidas. - O Firewall do Windows está desativado - Criou uma exceção para a porta no Firewall do Windows (isso não foi necessário no meu caso, pois o servidor está na mesma rede de sub-rede). -Ativado tudo no SQL Server Configuration Manager.
então, retornei o número da porta para o padrão 1433 e reiniciei o serviço do servidor sql, e o problema foi resolvido e eu consigo conectar o servidor sql no meu estúdio de gerenciamento local.
fonte
Eu tive o mesmo problema. Eu uso o MSSQL Server Management Studio 2017 e resolvi esse problema usando estas etapas:
e consertou.
fonte
Tente os seguintes passos:
Abra a janela Serviços (abra "caixa de execução" e digite services.msc).
Procurando serviços SQL (com prefixo SQL).
Inicie-os (se não for possível iniciar. Vá para a etapa 4).
Clique com o botão direito em cada serviço -> Propriedades -> Altere para a guia "Logon" -> escolha logon como "Local ..." -> 0K. Em seguida, inicie os serviços SQL novamente.
Experimente o Open SQL e conecte o banco de dados.
fonte
Você provavelmente encontrará que o nome do seu banco de dados não está correto, verá o nome do servidor no VS como "DESKTOP-0I14BKI", mas se você abrir o SSMS, verá DESKTOP-0I14BKI \ SQLBLAHBLAH , basta adicionar " \ SQLBLAHBLAH " (nome da instância ) ao seu "nome do servidor" nas propriedades de conexão do VS.
Você verá :
Consertar:
fonte
TL; DR; Sua instância do SQL Server está usando portas dinâmicas que não estão funcionando. Force o SQL Server a usar a porta estática # 1433.
Detalhes completos : Primeiro de tudo, esse problema é mais provável se você tiver uma combinação de instância padrão e nomeada ou apenas instâncias nomeadas (que foi o meu caso).
Conceito chave : Cada instância do Microsoft SQL Server instalada em um computador usa uma porta diferente para atender às solicitações de conexão recebidas. A instância padrão do SQL Server usa a porta nº 1433. À medida que você instala instâncias nomeadas, elas começam a usar portas dinâmicas, decididas no momento da inicialização do serviço do Windows correspondente à instância nomeada do SQL Server.
Meu código estava falhando (com o código de erro 40) ao conectar-se à única instância nomeada do SQL Server que eu tinha na minha VM. Você pode tentar abaixo as possíveis soluções:
Solução 1 : o código do cliente que tenta se conectar à instância do SQL Server recebe ajuda do serviço de navegador do SQL Server para descobrir o número da porta na qual a instância nomeada está escutando as conexões de entrada. Verifique se o serviço do navegador SQL está sendo executado no seu computador.
Solução 2 : verifique o número da porta (na cor amarela) que sua instância nomeada do SQL Server está usando no gerenciador de configuração do SQL Server, conforme mostrado na captura instantânea abaixo:
Use esse número de porta explicitamente na cadeia de conexão ou com o
sqlcmd
mostrado abaixo:Solução 3 : force a instância nomeada a usar a porta 1433, que é usada por instância padrão. Lembre-se de que isso funcionará apenas se você não tiver nenhuma instância padrão do SQL Server no seu computador, pois a instância padrão do SQL Server já estaria usando a porta # 1433. O mesmo número de porta não pode ser usado por dois serviços diferentes do Windows.
Marque o
TCP Dynamic ports
campo em branco e oTCP Port
campo 1433.Mude o número da porta na sua cadeia de conexão, como mostrado abaixo:
OU
Nota : Toda alteração nas configurações de TCP / IP requer a reinicialização do serviço correspondente do Windows.
Curiosamente, depois de resolver o erro, quando voltei à configuração de porta dinâmica para reproduzir o mesmo erro, isso não aconteceu. Não sei por que.
Leia abaixo os tópicos interessantes para saber mais sobre as portas dinâmicas do SQL Server:
Como configurar a porta do SQL Server em várias instâncias?
Quando uma porta dinâmica é "dinâmica"?
Quando usar uma porta dinâmica TCP e quando Porta TCP?
Eu tenho pistas para a solução do meu problema neste blog.
fonte
No meu caso, abri o SQL Server Management Studio e procurei o SQLEXPRESS no meu mecanismo de banco de dados. Tinha duas instâncias e eu selecionei a correta.
fonte
Se você estiver trabalhando com o núcleo do Asp.net e usando appsettings.json, escreva o servidor como localhost e depois grave o nome da instância sql para o pipe nomeado ativado como este
fonte
Solução muito simples
use
(local)\InstanceName
é isso. funcionou para mim.fonte
Se você tentou reiniciar o serviço MSSQLSERVER e não funcionou, isso pode ser uma solução:
Se você estiver usando SQLExpress, o nome do servidor deve ser o seguinte ComputerName \ SQLExpress. No entanto, para SQLDeveloper, você não precisa corrigir o SQLDeveloper após o seu ComputerName.
fonte
Depois de seguir todas as etapas mencionadas aqui , se ele ainda não se conectar, tente adicionar o DNS com o endereço IP no arquivo hosts na pasta etc. Adicionar um endereço IP em vez do nome DNS na cadeia de conexão deve ser uma solução temporária para verificar se a conexão realmente funciona.
fonte
eu assegurei e fiz o acima também, e eu só quero compartilhar que o DOUBLE BACKSLASH
oBuilder.DataSource = "SPECIFICPCNAME \ SQLEXPRESS";
O uso de SINGLE BACKSLASH resultou em um erro de construção, ou seja: Erro 1 Sequência de escape não reconhecida
Espero que isso ajude o próximo cara - sacrifiquei o jantar, o lanche da meia-noite e a NBA destaca o tempo para resolver isso (vergonha)
Obrigado a [Tamizh venthan] ^ _ ^
fonte
Habilite o TCP / IP, Protocolo Canalizado, indo para Gerenciamento do Computador -> SQL e Serviços, verifique se o Serviço está Ligado. Enbale a porta no Firewall. Tente fazer login através do prompt de comando -> como administrador; por último, o nome do usuário deve ser (local) \ SQLEXPRESS. Espero que isto ajude.
fonte
Abra o Gerenciador de Configuração do SQL Server
fonte
Eu tive o mesmo problema e resolvi o problema desativando meu firewall (ESET).
O primeiro passo para resolver esse problema deve ser tentar executar ping no seu próprio computador de outro computador. Se você tiver um firewall ativado, poderá não conseguir executar o ping sozinho. Eu tentei executar o ping no meu próprio PC e o ping falhou (não obtive resposta do servidor)
fonte
Sugeri as etapas abaixo para resolver seu problema Como corrigir o erro 'Provedor de pipes nomeados, erro 40 - Não foi possível abrir uma conexão com o' SQL Server '
fonte
Eu estava tentando adicionar uma nova conexão no VS2015. Nenhuma das sugestões aqui funcionou. Suspeitando de algum tipo de bug no assistente, especialmente porque o SSMS conseguiu se conectar muito bem, decidi tentar enganá-lo. Funcionou!
Em vez de adicionar a conexão, use "Criar novo banco de dados do SQL Server". Digite o nome do servidor e um nome aleatório para o novo banco de dados, por exemplo, "teste".
Supondo que isso seja bem-sucedido, abra o Server Explorer no VS, localize a conexão no Data Connections, clique com o botão direito do mouse e selecione Modify Connection.
Altere "test" (da etapa 1) para o nome do banco de dados existente ao qual você deseja se conectar. Clique em "Testar conexão". Desta vez, deve funcionar!
Exclua o banco de dados temporário que você criou na etapa 1.
fonte
Eu tenho mais uma solução, eu acho. Recentemente, mudei o nome do meu computador, depois que não consegui me conectar ainda depois de tentar todos os métodos acima. Alterei o nome do servidor. Nome do servidor => (procure mais) => no mecanismo de banco de dados, um novo servidor foi encontrado igual ao novo nome dos computadores. Isso funcionou, e a vida é boa novamente.
fonte
Eu lutei durante muito tempo com este antes de perceber meu erro - usei vírgulas em vez de ponto e vírgula na string de conexão
fonte
Eu tive esse problema, mas nenhuma das sugestões acima o corrigiu.
Eu estava vendo esse problema quando implantei meu site no IIS. A correção foi entrar em configurações avançadas no pool de aplicativos padrão e alterar a propriedade de identidade do padrão para Administrador.
fonte
Para mim, foi um problema de firewall.
Primeiro você precisa adicionar a porta (como 1444 e talvez 1434), mas também
e
A segunda vez que obtive esse problema foi quando voltei ao firewall, os caminhos não estavam corretos e eu precisava atualizar o formulário 12 para 13! Basta clicar em navegar na guia Programas e Serviços para ajudar a perceber isso.
Por fim, tente executar o comando
Para mim, ele retornou o motivo do erro
fonte
Tentei praticamente tudo nesta página, mas eu tinha alguns problemas subjacentes que eram realmente o que precisava ser resolvido. Não consegui fazer certas coisas, como abrir o SQL Server Configuration Manager, que acabou sendo arquivos corrompidos / ausentes do provedor WMI.
Existem várias maneiras tediosas de resolver esses problemas de acordo com o que eu li, mas a ferramenta tweaking.com conseguiu remover e substituir / reparar meus arquivos do provedor WMI (Windows Management Instrumentation).
Eu costumava fazer reparos no computador e, no geral, a ferramenta tweaking.com realmente me impressionou, e isso foi sugerido em uma das páginas do fórum de erros do WMI que visitei.
Depois de corrigir esse problema, consegui me conectar ao meu banco de dados SQL, local e remotamente.
Espero que isso ajude alguém.
fonte