Não consigo me conectar ao meu SQL Server 2008 local?

18

Acabei de instalar o SQL Server 2008 e não consigo conectar-me ao SQL Server Management Studio. Minha intenção é permitir que meu usuário local do Windows seja autenticado, mas não tenho muita certeza de como fazer isso .

Na caixa de diálogo de conexão, estou escrevendo:

Server type: Database Engine
Server name: (local)
Authentication: Windows Authentication

Minha primeira pergunta seria se é com isso que devo me conectar? Quando tento conectar, recebo esta mensagem de erro:

TITLE: Connect to Server
------------------------------

Cannot connect to (local).

------------------------------
ADDITIONAL INFORMATION:

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: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
(Microsoft SQL Server, Error: 2)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=2&LinkId=20476

------------------------------
BUTTONS:

OK
------------------------------

Eu fui para a URL lá exibida e basicamente diz "certifique-se de que o SQL server esteja em execução". Eu acho que é, mas não tenho certeza.

Desabilitei o Firewall do Windows (este é o Windows 7 7100 x86). Também alterei o sistema de logon no SQL Server Configuration Manager, mas parece que não é um problema de logon, mas nem consigo abrir o soquete. Nessa mesma ferramenta, habilitei todos os protocolos em "Configuração de rede do SQL Server" -> "Protocolos para SQLEXPRESS" sem sorte. Eu fico sem idéias. O que mais posso tentar?

pupeno
fonte
Parece que a resposta verdadeira aqui foi a instância nomeada. . \ SqlExpress ponto significa localhost e \ SqlExpress é a instância à qual você deseja se conectar. Para quem não sabe, você pode ter mais de um SQL Server em uma máquina. SqlExpress, neste caso, é apenas o nome, em vez de uma indicação estrita do tipo ou versão estrita do produto.
P.campbell 29/05

Respostas:

23

Ok, você pode abrir o console de serviços e rolar para baixo até S para SQL Server. Agora você deve ver os serviços. Verifique se o SQL Server (SQLEXPRESS) está em execução e tente. \ SQLEXPRESS em vez de (local).

Então, conforme o seu exemplo:

Server type: Database Engine
Server name: .\SQLEXPRESS
Authentication: Windows Authentication

Espero que isto ajude

Atualização: Essas instruções são porque eu suponho que você esteja executando o Express Edition e não o Dev / Std / Ent do SQL Server


Tente garantir que os protocolos apropriados estejam habilitados:

  1. Inicie o SQL Configuration Manager (por exemplo: Iniciar-> Programas-> SQL Server-> Ferramentas de configuração)
  2. Expanda a configuração do cliente nativo do SQL
  3. Clique em Protocolos de cliente (você pode ter 32 e 64 bits, aplicar a ambos)
  4. Verifique se a memória compartilhada, TCP / IP e pipes nomeados estão ativados nessa ordem
  5. Expanda Configuração de rede do SQL Server
  6. Verifique se a Memória Compartilhada para SQLEXPRESS e / ou MSSQLSERVER está ativada
  7. Clique em Serviços do SQL Server
  8. Reinicie todos os serviços em execução

Agora você deve conseguir fazer login na instância


Se você achar que não consegue fazer o login, pode ser necessário seguir estas instruções para obter o SQL Server no modo de usuário único. Veja aqui as instruções completas da Microsoft.

Por padrão, o sqlservr.exe está localizado em C: \ Arquivos de Programas \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ Binn. Se uma segunda instância do SQL Server estiver instalada, uma segunda cópia do sqlservr.exe estará localizada em um diretório como

C: \ Arquivos de programas \ Microsoft SQL Server \ MSSQL10_50.MSSQLSERVER \ MSSQL \ binn.

Você pode iniciar uma instância do SQL Server usando sqlservr.exe de uma instância diferente, mas o SQL Server também iniciará a versão da instância incorreta, incluindo service packs, o que pode levar a resultados inesperados.

Para evitar isso, use o comando alterar diretório (cd) do MS-DOS para mover para o diretório correto antes de iniciar o sqlservr.exe, conforme mostrado no exemplo a seguir.

cd \ Arquivos de Programas \ Microsoft SQL Server \ MSSQL10_50.1 \ MSSQL \ Binn

Para iniciar a instância padrão do SQL Server no modo de usuário único em um prompt de comando

Em um prompt de comandos, digite o seguinte comando:

sqlservr.exe -m

O modo de usuário único pode ser útil para executar manutenção de emergência quando você não deseja que outros usuários se conectem ao SQL Server, mas qualquer usuário pode se tornar o usuário único, incluindo o serviço SQL Server Agent.

Agora você deve conseguir fazer login na instância e adicionar-se à guia segurança e conceder acesso total.

Método alternativo:

Aqui está um script que afirma adicionar o usuário atual à função sysadmin do SQL Server. Isso pode funcionar no modo de usuário único, mas eu não o verifiquei

Wayne
fonte
O Console de Serviços é a guia Serviços no Gerenciador de Tarefas do Windows? (Win7). Enfim, o SQLEXPRESS não está lá, como eu o executo?
Pupeno
11
Console de serviço é Iniciar> Painel de controle> Ferramentas Administrativas> Serviços
Wayne
Não importa, encontrei o console de serviços, o SQLEXPRESS está em execução.
Pupeno
A conexão com. \ SQLEXPRESS fez o truque. Muito obrigado Wayne!
Pupeno 24/05/09
11
Muito obrigado ... estava ficando louco tentando descobrir isso! (Nota para os outros em "\ SQLEXPRESS" ... 'SQLEXPRESS' é a instância Id lhe deu o servidor durante a instalação.
RiddlerDev
0

(local) resolve para 127.0.0.1 e funciona apenas por padrões. Instâncias, como o padrão para o SQL Server Express, precisam de um nome real. Observe que você pode verificar o log de erros do SQL Server (pasta de instalação do SQL e log) e uma das primeiras entradas fornecerá o IP, a porta e o nome da instância.

Então você pode usá-los. Os nomes das instâncias são bons de usar, pois são razoavelmente consistentes. Observe que eles também usam portas dinâmicas, portanto, pode ser uma porta diferente em cada reinicialização. O Gerenciador de configuração do SQL Server pode definir uma porta específica. não tenho certeza sobre as ferramentas Express.

Steve Jones
fonte