Compartilhar via


Ocorreu um erro de rede ou específico à instância ao estabelecer uma conexão com o SQL Server

Aplica-se ao: SQL Server

Ao se conectar a uma instância de SQL Server, você pode encontrar uma ou mais das seguintes mensagens de erro. Este artigo fornece algumas etapas para ajudá-lo a solucionar esses erros, que são fornecidos na ordem dos problemas, de simples a complexos.

Mensagens de erro

As mensagens de erro completas variam dependendo da biblioteca de clientes usada no aplicativo e no ambiente do servidor. Você pode verificar os seguintes detalhes para ver se está encontrando uma das seguintes mensagens de erro:

              
                             provedor: Provedor de Pipes Nomeados, erro: 40 – Não foi possível abrir uma conexão com o SQL Server (Microsoft SQL Server, Erro: 53) Ocorreu um erro de rede ou específico à 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 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: 53)
provedor: Provedor TCP, erro: 0 – esse host não é conhecido. (Microsoft SQL Server, erro: 11001)

Source Language: en-US
provedor: Interfaces de Rede SQL, erro: 26 – erro ao localizar servidor/instância especificada Ocorreu um erro de rede ou específico à 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 SQL Server está configurado para permitir conexões remotas.
provedor: Interfaces de Rede SQL, erro: 26 – erro ao localizar servidor/instância especificada

              
              
                             Tempo limite de logon expirado Erro de Link de Dados do Cliente Nativo do SQL Server
[Cliente Nativo do Microsoft SQL Server 10.0]: Tempo limite de logon expirado.
[Cliente Nativo do Microsoft SQL Server 10.0]: Ocorreu um erro de rede ou específico à instância ao estabelecer uma conexão com o SQL Server O servidor não foi encontrado ou não está acessível. Verifique se o nome da instância está correto e se o SQL Server está configurado para permitir conexões remotas. Para obter mais informações, consulte o tópico a seguir nos Manuais Online do SQL Server:
[Microsoft SQL Server Native Client 10.0]: Interfaces de rede do SQL Server: erro ao localizar servidor/instância especificada [xFFFFFFFF].

              
              
                             Falha em uma tentativa de conexão porque a parte conectada não respondeu corretamente após um período de tempo ou a conexão estabelecida falhou porque o host conectado não respondeu Ocorreu um erro de rede ou específico à 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 SQL Server está configurado para permitir conexões remotas.
provedor: provedor TCP, erro: 0
Falha em uma tentativa de conexão porque a parte conectada não respondeu corretamente após um período de tempo ou a conexão estabelecida falhou porque o host conectado não respondeu.
Microsoft SQL Server, erro: 10060

              
              
                             provedor: provedor de pipes nomeados, erro: 40 – não foi possível abrir uma conexão com SQL Server Ocorreu um erro de rede ou específico à 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 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 SQL Server
Microsoft SQL Server, erro: 53
O caminho de rede não foi encontrado

              
              
                             [[Microsoft] [SQL Server Native Client 11.0]Provedor TCP: não foi possível fazer nenhuma conexão porque o computador de destino a recusou ativamente Erro de Link de Dados do Cliente Nativo do SQL Server
[Microsoft] [SQL Server Native Client 11.0]Provedor TCP: não foi possível fazer nenhuma conexão porque o computador de destino a recusou ativamente.
[Microsoft] [SQL Server Native Client 11.0]Tempo limite de logon expirado.
[Microsoft][SQL Server Native Client 11.0]Ocorreu um erro de rede ou específico à instância ao estabelecer uma conexão com o SQL Server O servidor não foi encontrado ou não está acessível. Verifique se o nome da instância está correto e se o SQL Server está configurado para permitir conexões remotas. Para obter mais informações, consulte o tópico a seguir nos Manuais Online do SQL Server:

"O SQL Server não existe ou o acesso foi negado"

Esse erro geralmente significa que o cliente não consegue localizar a instância do SQL Server. Este problema ocorre por um dos seguintes motivos:

  • O nome do computador que está hospedando o SQL Server está incorreto.
  • A instância não resolve o IP correto.
  • O número da porta TCP não foi especificado corretamente.

Observação

Para solucionar problemas de conectividade em cenários de alta disponibilidade, consulte os seguintes artigos:

Erro do Windows 233: nenhum processo está na outra extremidade do pipe

A mensagem completa é:

Uma conexão foi estabelecida com êxito com o servidor, mas ocorreu um erro durante o processo de logon. (provedor: Provedor de Memória Compartilhada, erro: 0 – Nenhum processo está na outra extremidade do pipe.) (Microsoft SQL Server, Erro: 233)

Essa mensagem significa que SQL Server não está ouvindo no protocolo Memória Compartilhada ou Pipes Nomeados.

Coletar informações para solucionar o erro

Recomendamos que você colete as informações listadas nesta seção usando uma das seguintes opções antes de prosseguir com as etapas reais para solucionar o erro.

Opção 1: Usar a ferramenta de Verificação do SQL para coletar as informações necessárias

Se você puder entrar localmente no computador SQL Server e ter acesso ao administrador, use SQLCHECK. Essa ferramenta fornece a maioria das informações necessárias para a solução de problemas em um arquivo. Examine a home page da ferramenta para obter mais informações sobre como usá-la e as informações que ela coleta. Você também pode verificar os pré-requisitos recomendados e a página da lista de verificação.

Opção 2: Coletar os dados individualmente usando os procedimentos a seguir

Obter o nome da instância no Configuration Manager

No servidor que hospeda a instância SQL Server, use SQL Server Configuration Manager para verificar o nome da instância:

Observação

O Configuration Manager é instalado automaticamente no computador quando o SQL Server é instalado. As instruções sobre como iniciar o Configuration Manager variam ligeiramente de acordo com as versões do SQL Server e do Windows. Para obter detalhes específicos da versão, consulte SQL Server Configuration Manager.

  1. Entre no computador que hospeda a instância do SQL Server.

  2. Inicie o SQL Server Configuration Manager.

  3. No painel à esquerda, selecione Serviços do SQL Server.

  4. No painel direito, verifique o nome da instância do mecanismo de banco de dados.

    • SQL SERVER (MSSQLSERVER) indica uma instância padrão do SQL Server. O nome da instância padrão é <nome do computador>.
    •               SQL SERVER (<nome da instância >) indica uma instância nomeada do SQL Server. O nome da instância nomeada é <nome do computador>\<nome da instância>.

Esse é o endereço IP do servidor

Você pode usar as etapas a seguir para obter o endereço IP do computador que hospeda a instância do SQL Server.

  1. No menu Iniciar, selecione Executar. Na janela Executar, digite cmd e, em seguida, selecione OK.

  2. Na janela Prompt de Comando, digite ipconfig/all e pressione Enter. Anote o endereço IPv4 e o endereço IPv6.

    Observação

    O SQL Server pode se conectar usando o protocolo IP versão 4 ou o protocolo IP versão 6. Sua rede pode permitir um ou ambos.

Obter a porta TCP da instância

Na maioria dos casos, você se conecta ao Mecanismo de Banco de Dados em outro computador usando o protocolo TCP. Para encontrar a porta TCP da instância, siga estas etapas:

  1. Use o SQL Server Management Studio no computador que executa o SQL Server e conecte-se à instância do SQL Server. Em Pesquisador de Objetos, expanda Gerenciamento, expanda logs do SQL Server e clique duas vezes no log atual.

  2. No Visualizador de Arquivos de Log, selecione Filtro na barra de ferramentas. Na caixa Texto contém a mensagem, digite o servidor está ouvindo em, selecione Aplicar filtro e, em seguida, selecione OK.

  3. Uma mensagem como "Servidor está escutando [ 'any' <ipv4> 1433]" deve ser listada.

    Essa mensagem indica que a instância do SQL Server está escutando em todos os endereços IP neste computador (para IP versão 4) e na porta TCP 1433. (A porta TCP 1433 geralmente é a porta usada pelo Mecanismo de Banco de Dados ou a instância padrão do SQL Server. Somente uma instância do SQL Server pode usar essa porta. Se mais de uma instância do SQL Server estiver instalada, algumas instâncias deverão usar outra porta números.) Anote o número da porta usada pela instância do SQL Server à qual você está tentando se conectar.

    Observação

    • O endereço IP 127.0.0.1 provavelmente está listado. Ele é chamado de endereço do adaptador de loopback. Somente processos no mesmo computador podem usar o endereço IP para se conectar.
    • Você também pode exibir o log de erro do SQL Server usando um editor de texto. Por padrão, o log de erro está localizado em Arquivos de Programas\Microsoft SQL Server\MSSQL.n\MSSQL\LOG\ERRORLOG e em arquivos ERRORLOG.n Para obter mais informações, consulte Visualizar um log de erros do SQL Server.

Etapa 1: Verificar se a instância está em execução

Opção 1: usar o arquivo de saída SQLCHECK

  1. Pesquisa o arquivo de saída SQLCHECK para "SQL Server Information".
  2. Na seção intitulitada "Serviços de Interesse", localize sua instância do SQL Server nas colunas Nome e Instância (para instâncias nomeadas) e verifique seu status usando a coluna Iniciado. Se o valor for True, os serviços serão iniciados. Caso contrário, o serviço não está em execução no momento.
  3. Se o serviço não estiver em execução, inicie o serviço usando o SQL Server Management Studio, o SQL Server Configuration Manager, o PowerShell ou o miniaplicativo de Serviços.

Opção 2: Usar o SQL Server Configuration Manager

Para verificar se a instância está em execução, selecione Serviços do SQL Server no SQL Server Configuration Manager e verifique o símbolo pela instância do SQL Server.

  • Uma seta verde indica que uma instância está em execução.
  • Um quadrado vermelho indica que uma instância foi interrompida.

Se a instância for interrompida, clique com o botão direito do mouse na instância e selecione Iniciar. Em seguida, a instância do servidor é iniciada e o indicador se torna uma seta verde.

Opção 3: Usar comandos do PowerShell

Você pode usar o seguinte comando no PowerShell para verificar o status dos serviços do SQL Server no sistema:

Get-Service | Where {$_.status -eq 'running' -and $_.DisplayName -like "sql server*"}

Você pode usar o comando a seguir para pesquisar o arquivo de log de erros para a cadeia de caracteres específica "O SQL Server agora está pronto para conexões de cliente. Esta é uma mensagem informativa; nenhuma ação do usuário é necessária.":

Get-ChildItem -Path "c:\program files\microsoft sql server\mssql*" -Recurse -Include Errorlog | Select-String "SQL Server is now ready for client connections."

Etapa 2: Verificar se o serviço do Navegador do SQL Server está em execução

Observação

Esta etapa é necessária apenas para solucionar problemas de conectividade com instâncias nomeadas.

Opção 1: usar o arquivo de saída SQLCHECK

  1. Pesquisa o arquivo de saída SQLCHECK para "SQL Server Information".
  2. Na seção intitulitada "Serviços de Interesse", pesquise SQLBrowser na coluna Nome e verifique seu status usando a coluna Iniciado. Se o valor for True, o serviço foi iniciado. Caso contrário, o serviço não está em execução no momento e você precisa iniciá-lo. Para obter mais informações, consulte Iniciar, parar, pausar, retomar, reiniciar serviços do SQL Server.

Opção 2: Usar o SQL Server Configuration Manager

Para se conectar a uma instância nomeada, o serviço do Navegador do SQL Server deve estar em execução. Em SQL Server Configuration Manager, localize o serviço Navegador do SQL Server e verifique se ele está em execução. Se ele não estiver em execução, inicie o serviço. O Navegador do SQL Server não é necessário para instâncias padrão.

Para obter mais informações sobre como usar o serviço do Navegador do SQL Server em seu ambiente, consulte serviço do Navegador do SQL Server.

Para obter mais informações sobre como parar e iniciar os Serviços do SQL, consulte Iniciar, parar, pausar, retomar, reiniciar serviços do SQL Server.

Observação

Se você não puder ter o serviço do Navegador SQL Server em execução em seu ambiente, consulte Conexão com a instância nomeada do SQL Server sem serviço do Navegador SQL Server.

Etapa 3: Verificar o nome do servidor na cadeia de conexão

Geralmente, você encontra erros quando um nome de servidor incorreto é especificado na cadeia de conexão. Verifique se o nome do servidor corresponde ao que você recuperou nas etapas anteriores.

Observação

Se você estiver usando a ferramenta SQLCHECK, examine os valores NetBios Name/FQDN na seção Informações do Computador do arquivo de saída.

Etapa 4: Verificar os aliases nos computadores clientes

Aliases geralmente são usados em ambientes de cliente quando você se conecta ao SQL Server com um nome alternativo ou quando há problemas de resolução de nomes na rede. Eles são criados usando o SQL Server Configuration Manager ou o utilitário de rede do cliente. Um alias incorreto pode fazer com que as conexões de seus aplicativos se conectem ao servidor errado, resultando em falha. Use os métodos a seguir para verificar aliases incorretos. Você também pode usar uma ferramenta (como SQLCHECK) no computador cliente para verificar aliases e várias outras configurações relacionadas à conectividade em um computador cliente.

Observação

As opções a seguir se aplicam somente aos aplicativos que usam Cliente Nativo do SQL Server para se conectar ao SQL Server.

Opção 1: usar o arquivo de saída SQLCHECK

  1. No arquivo de saída SQLCHECK, pesquise o Aliases SQL da cadeia de caracteres. (Essa cadeia de caracteres estará dentro da seção Segurança do Cliente e Informações do Driver do arquivo)
  2. Examine as entradas na tabela. Se não houver nenhuma presente, não haverá aliases no computador. Se houver uma entrada, examine as informações para garantir que o nome do servidor e o número da porta estejam definidos com os valores corretos.

Exemplo de saída:
Aliases do SQL:

Alias Name   Protocol   Server Name     Port   32-bit 

----------   --------   ------------    ----   ------ 

prodsql      TCP        prod_sqlserver  1430      

A saída indica que prodsql é um alias para um SQL Server chamado prod_sqlserver que está em execução na porta 1430.

Opção 2: Verificar aliases no SQL Server Configuration Manager

  1. No SQL Server Configuration Manager, expanda SQL Server Native Client Configuration e selecione Aliases.

  2. Verifique se algum alias está definido para o servidor ao qual você está tentando se conectar.

    Se o alias existir, siga estas etapas:

    1. Abra o painel Propriedades do alias.
    2. Renomeie o valor no campo Nome do Alias (por exemplo, se o nome do servidor for MySQL, renomeie-o como MySQL_test) e repita a conexão. Se a conexão funcionar, o alias está incorreto e pode vir de uma configuração antiga que não é mais necessária. Se a conexão não funcionar, renomeie o alias de volta para o nome original e vá para a próxima etapa.
    3. Verifique os parâmetros de conexão para o alias e verifique se eles estão corretos. Os seguintes cenários comuns podem causar problemas de conectividade:
      • Endereço IP incorreto para o campo Servidor. Verifique se o endereço IP corresponde à entrada no arquivo do log de erros do SQL Server.
      • Nome do servidor incorreto no campo Servidor. Por exemplo, o alias do servidor aponta para o nome do servidor correto. No entanto, as conexões falharão se o valor do parâmetro de nome do servidor estiver incorreto.
      • Formato de nome do pipe incorreto (supondo que você use um alias de pipes nomeados).
        • Ao se conectar a uma instância padrão chamada Mydefaultinstance, o nome do pipe deve ser Mydefaultinstance\pipe\sql\query.
        • Ao se conectar a uma instância chamada MySQL\Named, o nome do pipe deve ser MySQL\pipe\MSSQL$Named\sql\query.

Opção 3: Verificar aliases no Utilitário de Rede do Cliente do SQL Server

  1. Abra o Utilitário de Rede do Cliente SQL Server digitando cliconfg.exe no comando Executar.
  2. Siga a etapa 2 na Opção 2: Verificar aliases no SQL Server Configuration Manager.

Etapa 5: Verificar a configuração do firewall

Você pode verificar a configuração do firewall dependendo da instância padrão ou da instância nomeada.

Observação

Se você estiver usando firewalls de terceiros em sua rede, os conceitos ainda se aplicarão. No entanto, talvez seja necessário trabalhar com o administrador de rede ou consultar a documentação do produto de firewall para obter mais informações sobre como configurar o firewall para permitir as portas necessárias para comunicação com SQL Server.

Instância padrão do SQL Server

Uma instância padrão normalmente é executada na porta 1433. Algumas instalações também usam uma porta não padrão (diferente da 1433) para executar instâncias do SQL. O firewall pode bloquear qualquer porta. Para verificar o número da porta, siga estas etapas:

  1. Determine a porta na qual sua instância SQL está sendo executada. Consulte Obter a porta TCP da instância.
    • Se o SQL Server estiver configurado para escutar na porta 1433, verifique se os firewalls na rede entre o cliente e o servidor permitem o tráfego nessa porta. Examine Configurar um Firewall do Windows para Acesso ao Mecanismo de Banco de Dados e trabalhe com o administrador de rede para implementar as soluções necessárias.
    • Se a instância SQL Server padrão não estiver usando 1433, tente acrescentar o número da porta do SQL Server ao nome do servidor usando o formato <servername>,<portnumber> e veja se ele funciona. Por exemplo, o nome da instância SQL é MySQLDefaultinstance e está em execução na porta 2000. Especifique o nome do servidor como MySQLServer, 2000 e veja se ele funciona.
      • Se não funcionar, isso indica que o firewall está bloqueando a porta. Você pode seguir as instruções em Configurar um Firewall do Windows para Acesso ao Mecanismo de Banco de Dados ou trabalhar com o administrador de rede para adicionar a porta à lista de exclusão de firewall.
      • Se funcionar, isso indica que o firewall está permitindo a comunicação por meio dessa porta. Você precisa alterar a cadeia de conexão para usar o número da porta e o nome do servidor na cadeia de conexão do aplicativo.

Instância nomeada do SQL Server

Se sua instância SQL for uma instância nomeada, ela poderá ser configurada para usar portas dinâmicas ou uma porta estática. Em ambos os casos, as bibliotecas de rede subjacentes consultam o serviço Navegador do SQL Server em execução no computador SQL Server por meio da porta UDP 1434 para enumerar o número da porta para a instância nomeada. Se um firewall entre o cliente e o servidor bloquear essa porta UDP, a biblioteca de clientes não poderá determinar a porta (um requisito de conexão) e a conexão falhará. Para verificar a conexão, use um dos seguintes métodos:

  • Método 1: verifique a conexão especificando o número da porta na cadeia de conexão.

    1. Determine a porta na qual sua instância SQL está sendo executada. Consulte Obter a porta TCP da instância.
    2. Tente se conectar à instância nomeada usando o número da porta acrescentado ao nome do servidor no formato <servername\instancename>,<portnumber> e veja se isso funciona. Por exemplo, se o nome da instância SQL for MySQL\Namedinstance e estiver em execução na porta 3000, especifique o nome do servidor como MySQL\Namedinstance,3000.
      • Se funcionar, isso indica que o firewall está bloqueando a porta UDP 1434 ou que a instância está oculta do Navegador do SQL Server.
      • Se não funcionar, isso indica uma das seguintes situações:
        • A porta UDP 1434 ou a porta estática está bloqueada, ou ambas. Para confirmar se é a porta UDP ou a porta estática, use Portqry.
        • A instância está oculta do serviço do Navegador do SQL Server.
  • Método 2: Verifique a conexão usando a ferramenta PortQryUI.

    Use a ferramenta PortQryUI com sua instância nomeada e observe a saída resultante. Você pode ver uma mensagem informando que a porta UDP 1434 é filtrada. Essa mensagem indica que a porta está bloqueada na rede. Para obter instruções sobre como usar a ferramenta, consulte Uso da Ferramenta PortQryUI com SQL Server.

    Determine se a instância do SQL Server está ouvindo em portas dinâmicas ou estáticas. Em seguida, use o método a seguir relevante para seu cenário. Se você não tiver certeza, consulte Como verificar se o SQL Server está escutando em uma porta dinâmica ou em uma porta estática.

    • Cenário 1: portas dinâmicas. Nesse caso, verifique se o serviço do Navegador do SQL Server foi iniciado e se a porta UDP 1434 não está bloqueada no firewall entre o cliente e o servidor. Se você não puder fazer nada disso, alterne sua instância do SQL Server para uma porta estática e use o procedimento documentado em Configurar um Servidor para Escutar em uma Porta TCP específica.
    • Cenário 2: configuração de porta estática. O Navegador do SQL Server não está em execução ou o UDP 1434 não pode ser aberto no firewall. Nesse caso, especifique a porta estática na cadeia de conexão e se o firewall não bloqueia a porta. Para obter mais informações, examine Configurar um Firewall do Windows para Acesso ao Mecanismo de Banco de Dados.

Etapa 6: Verificar os protocolos habilitados no SQL Server

Em algumas instalações do SQL Server, as conexões com o Mecanismo de Banco de Dados de outro computador não são habilitadas, a menos que um administrador as habilite manualmente. Você pode usar uma das opções a seguir para verificar e habilitar os protocolos necessários para permitir conexões remotas com o Mecanismo de Banco de Dados do SQL Server.

Opção 1: usar o arquivo de saída SQLCHECK

  1. Pesquisa o arquivo de saída SQLCHECK para a seção "Detalhes para SQL Server instância" e localize a seção de informações para sua instância de SQL Server.

  2. Na seção, localize os valores listados na tabela a seguir para determinar se os protocolos do SQL Server estão habilitados:

    Nome do valor Implicação Mais informações
    Memória Compartilhada Habilitada Pode ser true ou false - afeta apenas conexões locais. Criação de uma Cadeia de Conexão Válida Usando o Protocolo de Memória Compartilhada
    Pipes Nomeados Habilitados Se for false, as conexões locais e remotas usando pipes nomeados falharão Escolha de um Protocolo de Rede
    TCP Habilitado Se for false, as conexões locais e remotas usando TCP/IP falharão.
    Observação A maioria das instalações de SQL Server usa TCP/IP como o protocolo de comunicação entre o servidor e o cliente.
    Escolha de um Protocolo de Rede
  3. Habilite os protocolos necessários usando SQL Server Configuration Manager ou SQL Server PowerShell. Para obter mais informações, consulte Habilitar ou Desabilitar um Protocolo de Rede do Servidor.

    Observação

    Depois de habilitar um protocolo, o Mecanismo de Banco de Dados deve ser interrompido e reiniciado para que a alteração entre em vigor.

Opção 2: Usar o SQL Server Configuration Manager

Para habilitar conexões de outro computador usando o SQL Server Configuration Manager, siga estas etapas:

  1. Abra o SQL Server Configuration Manager.
  2. No painel esquerdo, expanda SQL Server Network Configuration e, em seguida, selecione a instância do SQL Server à qual você deseja se conectar. O painel direito lista os protocolos de conexão disponíveis. A Memória Compartilhada normalmente está habilitada. Ela só pode ser usada no mesmo computador, portanto, a maioria das instalações deixa a Memória Compartilhada habilitada. Para se conectar ao SQL Server de outro computador, use TCP/IP. Se o TCP/IP não estiver habilitado, clique com o botão direito do mouse em TCP/IP e selecione Habilitar.
  3. Se você alterar a configuração habilitada para qualquer protocolo, reinicie o Mecanismo de Banco de Dados. No painel à esquerda, selecione Serviços do SQL Server. No painel direito, clique com o botão direito na instância do Mecanismo de Banco de Dados e selecione Reiniciar.

Etapa 7: Testar a conectividade TCP/IP

Conectar-se ao SQL Server usando TCP/IP exige que o Windows estabeleça a conexão. Você pode usar as etapas a seguir para testar a conectividade TCP usando a ferramenta ping.

  1. No menu Iniciar, selecione Executar. Na janela Executar, digite cmd e selecione OK.
  2. Na janela Prompt de Comando, digite ping e o endereço IP do computador que está executando o SQL Server. Por exemplo:
    • IPv4: ping 192.168.1.101
    • IPv6: ping fe80::d51d:5ab5:6f09:8f48%11
  3. Se a rede estiver configurada corretamente, ping retornará Reply from <IP address> seguido por algumas informações adicionais. Se ping retornar Destination host unreachable ou Request timed out, TCP/IP não está configurado corretamente. Os erros neste ponto indicam um problema com o computador cliente, o computador do servidor ou algo sobre a rede, como um roteador. Para solucionar problemas de rede, consulte Solução de problemas avançados para problemas de TCP/IP.
  4. Se o teste ping for bem-sucedido usando o endereço IP, teste se o nome do computador pode ser resolvido para o endereço TCP/IP. No computador cliente, na janela Prompt de Comando, digite ping e o nome do computador que está executando o SQL Server. Por exemplo, ping newofficepc.
  5. Se o ping para o endereço IP for bem-sucedido, mas o ping para o nome do computador retornar Destination host unreachable ou Request timed out, talvez você tenha informações antigas (obsoletas) de resolução de nomes armazenadas em cache no computador cliente. Digite ipconfig /flushdns para limpar o cache DNS (Resolução de Nomes Dinâmicos). Em seguida, execute ping no computador pelo nome novamente. Quando o cache DNS está vazio, o computador cliente verifica as informações mais recentes sobre o endereço IP do computador do servidor.
  6. Se a rede estiver configurada corretamente, ping retornará Reply from <IP address> seguido por algumas informações adicionais. Se você puder executar ping com êxito no computador do servidor por endereço IP, mas receber um erro como Destination host unreachable ou Request timed out ao executar ping pelo nome do computador, a resolução de nomes não será configurada corretamente. Para obter mais informações, consulte como Solucionar Problemas Básicos de TCP/IP. A resolução de nomes bem-sucedida não é necessária para se conectar ao SQL Server. No entanto, se o nome do computador não puder ser resolvido para um endereço IP, as conexões deverão ser feitas para especificar o endereço IP. A resolução de nomes pode ser corrigida posteriormente.

Observação

Você também pode usar o cmdlet Test-NetConnection ou Test-Connection para testar a conectividade TCP de acordo com a versão do PowerShell instalada no computador. Para obter mais informações sobre o cmdlet do PowerShell, consulte Visão Geral do Cmdlet.

Etapa 8: Testar a conexão local

Antes de solucionar um problema de conexão de outro computador, teste sua capacidade de se conectar de um aplicativo cliente instalado localmente no computador que está executando o SQL Server. A conexão local evita problemas com redes e firewalls.

Este procedimento requer SQL Server Management Studio. Se você não tiver o Management Studio instalado, consulte Baixar o SSMS (SQL Server Management Studio).

Se não for possível instalar o Management Studio, você poderá testar a conexão usando o utilitário sqlcmd.exe. sqlcmd.exe é instalado com o Mecanismo de Banco de Dados. Para obter informações sobre sqlcmd.exe, consulte o Utilitário sqlcmd.

  1. Entre no computador onde o SQL Server está instalado usando um logon que possa acessar o SQL Server. Durante a instalação, o SQL Server requer que pelo menos um logon seja especificado como administrador do SQL Server. Se você não conhece um administrador, consulte Conectar-se ao SQL Server quando os administradores do sistema estão bloqueados.

  2. Na página Inicial, digite SQL Server Management Studio ou, no menu Iniciar das versões mais antigas do Windows, selecione Todos os Programas, selecione Microsoft SQL Server e, em seguida, selecione SQL Server Management Studio.

  3. No menu suspenso Conectar, selecione Mecanismo de Banco de Dados. Na caixa Autenticação, selecione Autenticação do Windows. Na caixa Nome do servidor, digite um dos seguintes tipos de conexão:

    Conectando-se a Tipo Exemplo
    Instância padrão <computer name> ACCNT27
    Instância Nomeada <computer name\instance name> ACCNT27\PAYROLL

    Observação

    Ao se conectar ao SQL Server de um aplicativo cliente no mesmo computador, o protocolo de memória compartilhada é usado. A memória compartilhada é um tipo de pipe nomeado local, portanto, às vezes você encontra erros relacionados a pipes.

  4. Se você receber um erro neste momento, deverá resolvê-lo antes de continuar. Seu logon pode não estar autorizado a se conectar. Seu banco de dados padrão pode estar ausente.

    Observação

    Você não pode solucionar o problema sem informações suficientes porque algumas mensagens de erro são passadas intencionalmente para o cliente. Esse é um recurso de segurança para evitar fornecer a um invasor informações sobre o SQL Server. Para exibir os detalhes sobre o erro, consulte o log de erros do SQL Server.

  5. Se você receber o erro 18456 Falha no logon do usuário, o artigo de Livros Online MSSQLSERVER_18456 contém informações adicionais sobre códigos de erro. O blog de Aaron Bertrand também tem uma lista extensa de códigos de erro em Erro de Solução de Problemas 18456 (link externo). Você pode exibir o log de erros usando o SSMS (se puder se conectar), na seção Gerenciamento do Pesquisador de Objetos. Caso contrário, você pode exibir o log de erros com o programa Bloco de Notas do Windows. O local padrão varia de acordo com sua versão e pode ser alterado durante a instalação. O local padrão do SQL Server 2019 (15.x) é C:\Arquivos de Programa\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Log\ERRORLOG.

  6. Se você puder se conectar usando memória compartilhada, teste a conexão usando TCP. Você pode forçar uma conexão TCP especificando tcp: antes do nome. Estes são os exemplos:

    Conectando-se a: Tipo: Exemplo:
    Instância padrão tcp:<computer name> tcp:ACCNT27
    Instância Nomeada tcp:<computer name/instance name> tcp:ACCNT27\PAYROLL
  7. Se você puder se conectar usando memória compartilhada, mas não TCP, deverá corrigir o problema de TCP. O problema mais provável é que o TCP não está habilitado. Para habilitar o TCP, consulte a Etapa 6: Verificar os protocolos habilitados no SQL Server.

  8. Se sua meta for se conectar usando uma conta diferente de uma conta de administrador, você poderá começar conectando-se como administrador. Em seguida, tente se conectar novamente com o logon de Autenticação do Windows ou o logon de Autenticação do SQL Server que o aplicativo cliente usa.

Etapa 9: Testar a conexão remota

Depois de se conectar usando o TCP no mesmo computador, é hora de tentar se conectar pelo computador cliente. Você pode usar qualquer aplicativo cliente, mas para evitar complexidade, instale as ferramentas do SQL Server Management no cliente. Após a instalação, tente usar o SQL Server Management Studio.

  1. Use o SQL Server Management Studio no computador cliente e tente se conectar usando o endereço IP e o número da porta TCP no número da porta de vírgula do endereço IP do formato. Por exemplo, 192.168.1.101,1433. Se essa conexão falhar, você provavelmente tem um dos seguintes problemas:
  2. Depois de se conectar usando o endereço IP e o número da porta, examine os seguintes cenários:
    • Se você se conectar a uma instância padrão que está escutando em qualquer porta diferente de 1433, deverá usar o número da porta na cadeia de conexão ou criar um alias no computador cliente para se conectar à instância padrão. O Navegador do SQL Server não pode enumerar portas da instância padrão.
    • Se você se conectar a uma instância nomeada, tente se conectar à instância no nome da instância de barra invertida do endereço IP de formato. (Por exemplo, 192.168.1.101\<instance name>.) Se essa ação não funcionar, isso significa que o número da porta não está sendo retornado ao cliente. O problema está relacionado ao serviço do Navegador do SQL Server, que fornece o número da porta de uma instância nomeada para o cliente. Estas são as soluções:
      • Inicie o serviço do Navegador do SQL Server. Consulte as instruções para iniciar o navegador no SQL Server Configuration Manager.
      • O Navegador do SQL Server está sendo bloqueado pelo firewall. Abra a porta UDP 1434 no firewall. Volte à seção Etapa 5: Verificar a configuração do firewall. Verifique se você está abrindo uma porta UDP, não uma porta TCP.
      • As informações da porta UDP 1434 estão sendo bloqueadas por um roteador. A comunicação UDP (protocolo de datagrama do usuário) não foi projetada para passar por roteadores e impede que a rede seja preenchida com tráfego de baixa prioridade. Você pode configurar o roteador para encaminhar o tráfego UDP ou fornecer o número da porta sempre que se conectar.
      • Se o computador cliente estiver usando o Windows 7, o Windows Server 2008 ou um sistema operacional mais recente, o sistema operacional cliente poderá remover o tráfego UDP porque a resposta do servidor é retornada de um endereço IP diferente que foi consultado. Esta ação é um recurso de segurança que bloqueia o "mapemaento de fonte afastado." Para obter mais informações, consulte a seção Endereços IP de Vários Servidores do artigo de Livros On-line Solução de Problemas: Tempo Limite Expirado. (Este artigo é do SQL Server 2008 R2, mas os principais ainda se aplicam. Você pode configurar o cliente para usar o endereço IP correto ou fornecer o número da porta sempre que se conectar.)
  3. Depois de se conectar usando o endereço IP (ou o endereço IP e o nome da instância para uma instância nomeada), tente se conectar usando o nome do computador (ou o nome do computador e o nome da instância para uma instância nomeada). Coloque tcp: na frente do nome do computador para forçar uma conexão TCP/IP. Por exemplo, para a instância padrão em um computador chamado ACCNT27, use tcp:ACCNT27. Para uma instância nomeada chamada PAYROLL, nesse computador use tcp:ACCNT27\PAYROLL. Se puder se conectar usando o endereço IP, mas não usando o nome do computador, você tem um problema de resolução de nomes. Volte à seção Etapa 7: Testar a conectividade TCP/IP.
  4. Depois de se conectar usando o nome do computador forçando o TCP, tente se conectar usando o nome do computador sem forçar o TCP. Por exemplo, para uma instância padrão, basta usar um nome de computador como CCNT27. Para uma instância nomeada, use o nome do computador e o nome da instância como ACCNT27\PAYROLL. Se você puder se conectar ao forçar o TCP, mas não sem forçar o TCP, o cliente provavelmente está usando outro protocolo, como pipes nomeados. Para corrigir esse problema, execute as seguintes etapas:
    1. No computador cliente, use o SQL Server Configuration Manager. No painel esquerdo, expanda a Configuração Versão< do Cliente Nativo do SQL > e selecione Protocolos de Cliente.
    2. No painel direito, verifique se o TCP/IP está habilitado. Se o TCP/IP estiver desabilitado, clique com o botão direito do mouse em TCP/IP e selecione Habilitar.
    3. Verifique se a ordem do protocolo para TCP/IP é um número menor do que os protocolos de pipes nomeados (ou VIA em versões mais antigas). Em geral, você deve deixar a memória compartilhada como ordem 1 e TCP/IP como ordem 2. A memória compartilhada só é usada quando o cliente e o SQL Server estão em execução no mesmo computador. Todos os protocolos habilitados são tentados na ordem até que um seja bem-sucedido, mas a memória compartilhada é ignorada quando a conexão não está no mesmo computador.

Etapa 10: verificar permissões do usuário

Se você estiver usando pipes nomeados para se conectar, marcar se um usuário tiver permissões para fazer logon no Windows. Para obter mais informações, confira Solução de problemas do problema de conexões de pipes nomeados.

Confira também