Não é possível conectar ao localhost no SQL Server Express 2012/2016

97

Acabei de baixar a versão mais recente do SQL Express 2012, mas não consigo me conectar ao localhost. Tentei localhost \ SQLExpress e a autenticação do Windows, mas recebo uma mensagem de erro informando que não é possível conectar. Estou faltando alguma coisa aqui? Já usei o SQL Server 2008 antes e nunca tive problemas para me conectar ao localhost. Parece que nem consegue encontrar. Também nos serviços, vejo apenas um gravador VSS do SQL Server. É assim que deveria ser? Ou eu estou esquecendo de alguma coisa? obrigado

dido
fonte
1
Parece que a instalação não correu bem. Você tentou consertá-lo / reinstalá-lo?
Vikdor,
1
Tem certeza de que encontrou o instalador para o servidor, ao contrário de, digamos, um instalador do Management Studio?
Damien_The_Unbeliever

Respostas:

181

De acordo com Aaron Bertand :

  1. Você precisa verificar se o serviço SQL Server está sendo executado. Você pode fazer isso acessando Start > Control Panel > Administrative Tools > Servicese verificando se o serviço SQL Server ( SQLEXPRESS) está em execução. Se não, comece.

  2. Enquanto estiver no miniaplicativo de serviços, verifique também se o serviço SQL Browser foi iniciado. Se não, comece .

  3. Você precisa se certificar de que o SQL Server tem permissão para usar TCP / IP ou pipes nomeados. Você pode ativá-los abrindo o SQL Server Configuration Manager em Start > Programs > Microsoft SQL Server 2012 > Configuration Tools(ou SQL Server Configuration Manager) e certifique-se de que TCP / IP e Pipes nomeados estejam ativados . Se você não encontrar o SQL Server Configuration Manager no menu Iniciar, poderá iniciar o snap-in do MMC manualmente. Verifique o SQL Server Configuration Manager para obter o caminho para o snap-in de acordo com sua versão.

    SQL Server Configuration Manager

  4. Verifique se o modo de autenticação de conexão do SQL Server corresponde à string de conexão:

    • Se você estiver se conectando usando um nome de usuário e senha, será necessário configurar o SQL Server para aceitar o "Modo de autenticação do SQL Server":

      -- YOU MUST RESTART YOUR SQL SERVER AFTER RUNNING THIS!
      USE [master]
      GO
      DECLARE @SqlServerAndWindowsAuthenticationMode INT = 2;
      EXEC xp_instance_regwrite
        N'HKEY_LOCAL_MACHINE',
        N'Software\Microsoft\MSSQLServer\MSSQLServer',
        N'LoginMode',
        REG_DWORD,
        @SqlServerAndWindowsAuthenticationMode;
      GO
    • Se você estiver se conectando usando "Integrated Security = true" (Modo Windows) e esse erro só aparecer durante a depuração em aplicativos da web, será necessário adicionar ApplicationPoolIdentity como um login do SQL Server :
  5. caso contrário, execute Start -> Run -> Services.mscSe sim, ele está funcionando?

Se não estiver funcionando então

Parece que você não instalou tudo. Inicie o arquivo de instalação e escolha a opção "Nova instalação ou adicionar recursos a uma instalação existente". A partir daí, você deve ser capaz de garantir que o serviço do mecanismo de banco de dados seja instalado.

Ravindra Bagale
fonte
2
@dido: Start-> Run-> Services.msc
Ravindra Bagale
3
Outra coisa a verificar é o nome da instância. Dependendo de como o SQL Server foi instalado, você pode ou não precisar fornecer um nome de instância após o host.
Arvo Bowen
"TCP / IP e Pipes nomeados estão habilitados" parece ser necessário após a primeira instalação
James A Mohler
3
Foi estúpido, mas para mim, o problema era usar "localhost" como o nome do servidor e não "localhost \ SQLEXPRESS01" como foi definido na instalação
Guy
1
No meu caso, o SQLBrowser estava desabilitado e a ferramenta de configuração não estava listada na pasta de ferramentas sql. Para iniciar a ferramenta de configuração via cmd https://docs.microsoft.com/en-us/sql/relational-databases/sql-server-configuration-manager?view=sql-server-2017 Para iniciar o SQLBrowser automaticamente se a configuração ferramenta falha /programming/21375014/i-cannot-start-sql-server-browser
steven87vt
121

Vá para Iniciar -> Programas -> Microsoft SQL ServerYYYY -> Ferramentas de Configuração -> Gerenciador de Configuração SQL Server YYYY ou execute "SQLServerManager12.msc".

Certifique-se de que TCP / IP esteja ativado em Protocolos de cliente.

Em seguida, vá para "Configuração de rede do SQL Server" e clique duas vezes em TCP / IP. Clique na guia "Endereços IP" e role até a parte inferior. Em "IP All", remova as portas dinâmicas TCP, se houver, e defina a porta TCP como 1433. Clique em OK, volte para "SQL Server Services" e reinicie a instância do SQL Server. Agora você pode se conectar via host local, pelo menos eu poderia.

insira a descrição da imagem aqui

Observe que esse erro também pode ocorrer ao conectar-se a partir de outros aplicativos. Exemplo para uma Web.configstring de conexão de aplicativo da web C # normal :

<connectionStrings>
    <add name="DefaultConnection" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>
Ogglas
fonte
4
Finalmente, isso funcionou para mim! Mudei a porta em IP1, IP2, ... mas não em IPAll. Isso mesmo, obrigado!
George
2
@George exatamente igual a você. Eu tinha até desabilitado o firewall e nada funcionou. Havia uma porta 40xxx nas portas dinâmicas TCP. Eu removi e coloquei 1433 na porta TCP para IPAll, isso também funcionou. Obrigado!
Alisson
Essa foi a chave para mim também.
Erik Olson de
1
Depois de muitas horas batendo minha cabeça contra a parede, isso finalmente funcionou. Obrigado.
Top Cat
Ótima solução. Isso salva meu dia. Muito obrigado!
Lavande,
13

no SQL SERVER EXPRESS 2012, você deve usar "(localdb) \ MSSQLLocalDB" como o nome da fonte de dados, por exemplo, você pode usar a string de conexão como esta

Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=master;Integrated Security=True;
CINZA
fonte
10

Tive um problema semelhante - talvez a minha solução ajude. Acabei de instalar o MSSQL EX 2012 (instalação padrão) e tentei conectar com o VS2012 EX. Sem alegria. Eu então olhei para os serviços e confirmei que o SQL Server (SQLEXPRESS) estava realmente funcionando.

No entanto, vi outro serviço interessante chamado SQL Server Browser que estava desativado. Eu o habilitei, disparei e consegui recuperar o nome do servidor em uma nova conexão no VS2012 EX e conectar.

Estranho que eles desabilitariam um serviço necessário para o VS se conectar.

Michael Lawrence
fonte
Não é necessário conectar; Eu desabilitei e consigo conectar sem problemas. Isso apenas torna as coisas mais fáceis quando você não sabe o nome preciso do host / instância ao qual se conectar, pois permite que essas coisas sejam consultadas por outro software.
Simon Morgan
8

Primeiro tente a solução mais popular fornecida por Ravindra Bagale .

Se sua conexão do host local com o banco de dados ainda falhar com um erro semelhante ao seguinte:

Não é possível conectar ao banco de dados do SQL Server. Erro: A conexão TCP / IP com o host [endereço IP], porta 1433 falhou. Erro: "Conexão recusada: conectar. Verifique as propriedades da conexão. Certifique-se de que uma instância do SQL Server está sendo executada no host e aceitando conexões TCP / IP na porta. Certifique-se de que as conexões TCP com a porta não estejam bloqueadas por um firewall . "

  1. Abra o SQL Server Configuration Manager.
  2. Expanda Configuração de rede do SQL Server para a instância do servidor em questão.
  3. Clique duas vezes em "TCP / IP".
  4. Na seção "Protocolo", defina "Ativado" como "Sim".
  5. Na seção "Endereços IP", defina a porta TCP em "IP All" (que é 1433 por padrão).
  6. Na seção "Endereços IP", encontre subseções com o endereço IP 127.0.0.1 (para IPv4) e :: 1 (para IPv6) e defina "Ativado" e "Ativo" como "Sim" e a porta TCP como 1433.

    Propriedades TCP / IP

  7. Acesse Start > Control Panel > Administrative Tools > Servicese reinicie o serviço do SQL Server ( SQLEXPRESS).

naXa
fonte
Tentei as outras soluções acima antes de chegar aqui. Este consertou para mim! Além disso, descobri que baixar uma coisa chamada psping me ajudou a testar a conexão. Exemplo: psping 127.0.0.1:1433
JMI MADISON
7

Primeiro verifique se o serviço SQL Server está rodando ou parado, se estiver parado apenas inicie-o, para isso ... basta seguir os passos abaixo.

1. Iniciar -> Executar -> Services.msc

insira a descrição da imagem aqui

  1. Vá para a guia Padrão no painel de serviços, em seguida, pesquise por SQl Server (SQL2014)

"SQL2014" é fornecido por mim, pode ser outro nome no seu caso

insira a descrição da imagem aqui

é isso, uma vez que você inicia o SQL Service, é capaz de conectar o banco de dados local.

espero que ajude alguém.

PK-1825
fonte
4

Todos os meus serviços estavam funcionando conforme o esperado e ainda não consegui me conectar.

Tive que atualizar a seção de propriedades de TCP / IP no SQL Server Configuration Manager para meus protocolos SQL Server Express e definir a porta IPALL para 1433 para me conectar ao servidor conforme o esperado.

insira a descrição da imagem aqui

contactmatt
fonte
3

Tente mudar da autenticação do Windows para o modo misto

Guru1
fonte
1

Isso é estranho, eu tenho um problema semelhante. Baixei o pacote do SQL 2012 Express com Ferramentas, mas o Mecanismo de Banco de Dados não foi instalado.

Eu baixei o outro do site da MS e este instalou o mecanismo de banco de dados. Após uma reinicialização, os serviços foram listados e prontos para funcionar.

user2832504
fonte
1

Minha situação

  • Nome da instância vazio no SQL Server Management Studio> selecione seu mecanismo de banco de dados> Botão direito do mouse> Propriedades (Propriedades do servidor)> Link Exibir propriedades de conexão> Produto> Nome da instância está vazio

  • Fonte de dados =. \ SQLEXPRESS não funcionou => use localhost em web.config (veja abaixo)

Solução : em web.config

xxxxxx = nome do meu banco de dados sem .mdf yyyyyy = nome do meu banco de dados no explorador de banco de dados VS2012

Você pode forçar o uso de TCP em vez de memória compartilhada, prefixando tcp: ao nome do servidor na string de conexão ou usando localhost.

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring%28v=vs.110%29.aspx

Marc Van Rumste
fonte
1

Eu tive o mesmo problema e descobri que isso aconteceu depois que instalei uma atualização para o meu SQL 2012. O que corrigiu para mim foi entrar em programas e recursos e executar um reparo.

Mur
fonte
1

O problema para mim é que eu não estava especificando .\. Eu estava apenas especificando o nome da instância:

  • não funcionou: SQL2016
  • funcionou: .\SQL2016
Cosmin
fonte
1

Depois de seguir os passos mencionados por @Ravindra Bagale , tente este passo. Server name: localhost\{Instance name you were gave}

insira a descrição da imagem aqui

Mohamed Musthaque
fonte
0

Tente alterar o usuário que possui o serviço para Sistema local ou use sua conta de administrador.

Em serviços, mudei o Log On do Service SQL Server (MSSQLSERVER) de NT Service \ Sql ... para o sistema local. Clique com o botão direito do mouse no serviço e vá para a guia Log On e selecione o botão de opção Conta do sistema local. Você também pode forçar outro usuário a executá-lo também, se isso for adequado.

DavidTheDev
fonte