Nenhum processo está na outra extremidade do tubo (SQL Server 2012)


92

Eu tenho este erro:

A connection was successfully established with the server, but then an error occurred
during the login process. (provider: Shared Memory Provider, error: 0 - No process is
on the other end of the pipe.)

(Microsoft SQL Server, Error: 233)

Eu sei, há perguntas semelhantes neste site, e a resposta é habilitar TCP / IP e tubos. Mas eu habilitei ambos e ainda não funciona:

Erro MSSQL

Estou usando o Microsoft SQL Server 2012 e o usuário tem permissões totais.


tente pinal dave solutions blog.sqlauthority.com/2009/05/21/…
GeoVIP

Isso funcionou para mim quando me reconectei da autenticação do servidor para a autenticação do Windows.
ganji raajkumar

1
O que funcionou para mim (sql express 2016) ... Removendo autenticação mista, deixando apenas o Windows auth, reiniciando o serviço, mude de volta para a autenticação mista, reinicie o serviço. até que eu fiz isso, nada corrigiu o erro Nenhum processo
Rostol

1
Para saber o que vale, verifique a string de conexão em seu arquivo de configuração. Para mim, alguém modificou um dos nomes de servidor e fez o check-in. Meu código estava tentando acessar um banco de dados que não existia em meu servidor.
camainc

Respostas:


120

O servidor foi configurado para autenticação do Windows apenas por padrão. Não há nenhuma notificação de que a origem dos erros é essa, então é difícil descobrir. O SQL Management Studio não alerta, mesmo se você criar um usuário apenas com autenticação SQL.

Portanto, a resposta é: Mude da autenticação do Windows para a autenticação SQL :

  1. Clique com o botão direito no nome do servidor e selecione properties;
  2. Selecione a securityguia;
  3. Ative o SQL Server and Windows Authentication mode;
  4. Reinicie o serviço SQL Server.

Agora você pode se conectar com seu login / senha.


5
A opção foi marcada corretamente, então marquei 'Autenticação do Windows', reiniciei o serviço e depois marquei 'Autenticação do Windows + Autenticação SQL' para corrigir o problema. Tão feliz!
Groco,

2
Para esclarecer o comentário de @ Groco: Faça login usando Windows Authentication>> Clique com o botão direito no seu servidor >> Properties>> Security(Abaixo Select a page) >> Abaixo Server Authenticationselecione SQL Server and Windows Authentication mode. Feche o SQL Server Management Studio, reinicie o serviço do SQL Server e tente fazer logon novamente.
Minh Tran

1
O problema que eu tinha era que Server Authenticationestava definido como Windows Authentication mode. E independentemente da senha correta inserida, sempre fui saudado com A connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.). Em todo o erro, consegui fazer login usandoWindows Authentication
Minh Tran

muito obrigado. reiniciar o serviço Sql corrigiu meu problema.
user1282609

57

Para resolver isso, conecte-se ao SQL Management Studio usando a Autenticação do Windows, clique com o botão direito do mouse em Propriedades do nó do servidor-> Segurança e ative o SQL Server e o modo de Autenticação do Windows. Se você estiver usando 'sa', certifique-se de que a conta esteja habilitada. Para fazer isso, abra 'sa' em Logins e veja o Status.

habilitar administrador sa

Se isso não funcionar, pode ser necessário reinstalar o SQL Server


Depois de fazer isso, reinicie o SQL Server. Em seguida, tente fazer o login.
Webucator,

25

Além disso, você pode tentar ir para serviços e reiniciar sua instância do servidor Sqlinsira a descrição da imagem aqui


3
Isso resolveu meu problema depois de tentar todas as outras correções.
mini998

Uh, isso não deveria vir com um grande rótulo de aviso que reiniciar o serviço do servidor sql só porque você não consegue se conectar irá interromper outras coisas que foram conectadas com sucesso?
undrline em

Isso funcionou muito bem para mim. Eu posso ver como é fácil para as pessoas negligenciarem a consideração dessa solução.
TechnicalTim

17

Então, eu tive isso recentemente também, para segurança integrada. Acontece que meu problema era bastante simples de consertar, mas principalmente porque eu tinha esquecido de adicionar "Trusted_Connection = True" à minha string de conexão.

Sei que pode parecer bastante óbvio, mas fiquei trabalhando por 20 minutos ou mais, até que percebi que havia copiado o formato da string de conexão de connectionstrings.com e que aquela parte da string de conexão estava faltando.

Simples e me sinto um pouco maluco, mas foi a resposta para mim.


Tentei todos os comentários, mas não funcionou. Sua solução funcionou perfeitamente para mim. Muito obrigado.
Royal.O

esta foi a última coisa que tentei depois que todas as outras coisas de verificação de tcp estão habilitadas, adicionando autenticação de modo misto e reiniciando o serviço do navegador sql e funcionou. obrigado
Myke Black,

10

Outro motivo para esse erro pode ser o nome do banco de dados incorreto ou inexistente.

Forçar a conexão TCP / IP (fornecendo em 127.0.0.1vez de localhostou .) pode revelar o verdadeiro motivo do erro. No meu caso, o nome do banco de dados especificado na string de conexão estava incorreto.

Então, aqui está a lista de verificação:

  • Certifique-se de que o Named Pipe esteja habilitado no gerenciador de configuração (não se esqueça de reiniciar o servidor).
  • Certifique-se de que o banco de dados ao qual você está se conectando existe.
  • Certifique-se de que a autenticação do SQL Server (ou modo misto) esteja habilitada.

o que aconteceu com o gerente de configuração no expresso 2016? Não vejo disponível? Oh, eu tenho que executar SQLServerManager13.msc agora
Kirsten Greed de

Quando mudei para 127.0.0.1, recebi a mensagem de erro Message = Ocorreu um erro relacionado à rede ou específico da 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: Interfaces de rede SQL, erro: 26 - Erro ao localizar servidor / instância especificada) Fonte = Core .Net SqlClient Data Provider
Kirsten Greed

1
@kirsteng Verifique suas instâncias do SQL Server instaladas. Você instalou uma instância padrão (MSSQLSERVER)?
Mohammad Dehghan

A autenticação do SQL Server em modo misto fez isso por mim. Pessoal, se você fizer uma nova instalação do SQL Server Express, quando quiser adicionar um usuário para suas necessidades de programação, você precisa alterá-lo para o modo misto, caso contrário, apenas a autenticação do Windows estará disponível.
Eduardo

Isso (meio que) funcionou. Assim que mudei o absurdo localdb para 127.0.0.1, ele passou.
Eric

9

Verifique isso também insira a descrição da imagem aquiverifique também a configuração TCP / IP, Nomes PipeLine e memória compartilhada ativada


7

Se estiver tentando fazer login com credenciais SQL, você também pode tentar alterar o LoginMode para SQL Server no registro para permitir a autenticação do SQL Server e do Windows.

  1. Abrir regedit
  2. Vá para a chave da instância SQL (pode variar dependendo do nome da instância): Computer \ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL14.SQLEXPRESS \ MSSQLServer \
  3. Defina LoginMode para 2

insira a descrição da imagem aqui

  1. Reinicie o serviço SQL e o SQL Server Management Studio e tente novamente.

esta é a resposta mais adequada.
sushh

5

Enfrentei esse problema pela segunda vez e todas as respostas anteriores falharam. Felizmente, a seguinte solicitação resolveu o problema:

Alter login [user] with CHECK_POLICY = OFF
go

Alter login [user] with CHECK_POLICY = ON
go

4

Para mim, a senha do meu usuário de login expirou e recebi a mesma exceção. Então eu loguei no modo de autenticação do Windows e alterei a senha do usuário associado, e isso resolveu meu problema.


você salva meu dia !!
aluno em

3

Também tinha esse erro, a causa era simples, mas não óbvia: senha incorreta. Não sei por que não recebi apenas "Falha no login" do servidor SQL 2016 recém-instalado.


3

Sim, esse erro pode muito bem ser "algo falhou, boa sorte para descobrir o que" - no meu caso, era um nome de usuário errado. SQL Server 2019 RC1.


2

Eu tenho o mesmo problema "Uma conexão foi estabelecida com sucesso com o servidor, mas então ocorreu um erro durante o processo de login. (Provedor: Provedor de memória compartilhada, erro: 0 - Nenhum processo está na outra extremidade do tubo.)"

Minha conexão é:

servidor = POS06 \ SQLEXPRESS; AttachDbFilename = C: ... \ Datas.mdf; Catálogo inicial = Dados; ID do usuário = sa; Pwd = 12345; Tempo limite de conexão = 10;

Mas meu SQL é POS06 \ MSQL2014

Altere a string de conexão para

servidor = POS06 \ MSQL2014; AttachDbFilename = C: ... \ Datas.mdf; Catálogo inicial = Dados; ID do usuário = sa; Pwd = 12345; Tempo limite de conexão = 10;

funcionou.


0

certifique-se de ter especificado o usuário em Segurança-> Logins, se não - adicione-o e tente novamente.


0

Siga a outra resposta e, se ainda não estiver funcionando, reinicie o computador para reiniciar efetivamente o serviço do SQL Server no Windows.


Normalmente, você também pode reiniciar o serviço SQL para seu banco de dados específico, localizando-o emservices.msc
Zimano 01 de

0

Sempre tente fazer login usando essas credenciais com o SQL Management Studio. Isso pode revelar mais alguns detalhes que você não obtém em tempo de execução em seu código. Verifiquei a autenticação SQL + Windows, reiniciei o servidor mas ainda não tive sorte. Depois de tentar fazer login usando o SQL Management, recebi este prompt:

captura de tela

De alguma forma, a senha expirou, embora o login tenha sido criado alguns minutos antes. De qualquer forma, nova senha definida, string de conexão atualizada e está tudo bem.

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.