O SQL Server foi iniciado, mas não escutou em nenhuma porta

9

Instalei recentemente o SQL Server 2012. Nenhum banco de dados foi criado ainda. E eu posso abrir o Management Studio com sa / password. O Binn \ sqlservr.exe é iniciado como um serviço e eu posso vê-lo iniciado na lista de serviços. No entanto, ele não escutou a porta 1433, ou mesmo, não escutou nenhuma porta por padrão, como verifiquei abaixo:

tasklist|find /I "sql"

Eu tenho:

sqlservr.exe                  5668 Services                   0     40,112 K

em que 5668 eu acho que é o PID. E então para obter PID = "5668" está ouvindo qual porta:

netstat -ano | find /I "5668"

mas não tenho nada além de espaço em branco. Por outro lado, depois de pesquisar as postagens neste site, verifiquei duas vezes a configuração do meu SQL Server: Iniciar-> Todos os Programas -> Microsoft SQL Server 2012 -> Ferramentas de Configuração -> Gerenciador de Configuração do SQL Server-> SQL Server SQL Native Client 11.0 Configuração -> Protocolos de Cliente -> TCP / IP -> Porta Padrão 1433. Existem 3 serviços, SQL Server (MyInstanceName), SQL Server Agent (MyInstanceName) e SQL Server Browser. Os dois últimos estão parados.

Gerenciador de Configuração do SQL Server -> Configuração de Rede do SQL Server -> Protocolos para MyInstanceName -> TCP / IP é desativado por padrão, depois que eu o habilitei, reinicie o serviço e repita o netstat -ano | find / I "newPIDNum" comando Encontrei o

TCP    0.0.0.0:52395          0.0.0.0:0              LISTENING  5668(newPIDNum)   

Por que 52395 em vez de 1433? E falhei ao criar o DSN usando o administrador de fonte de dados ODBC do Windows, que retorna um erro: servidor SQL especificado não encontrado. Alguma ajuda para mim? Obrigado.


fonte
Configuração de rede padrão do SQL Server (para 2008, não consigo encontrar a versão 2012, mas não acho que seja diferente) #
Damien_The_Unbeliever
Obrigado. Uma ajuda muito boa para mim. Mais algum comentário sobre minha caixa de DSN?
Parece que você está usando uma instância nomeada (apenas a instância padrão escuta em 1433, pelo que sei). Você está incluindo o nome da instância ao tentar criar o DSN?
Damien_The_Unbeliever
Sim, ao instalar, digitei um nome para Instância. Ao criar o DSN, fui solicitado a inserir um nome de DSN (digitei um nome arbitrário), servidor SQL ao qual conectar-se (Esta é uma caixa de seleção suspensa e tentei duas opções: ambas falham, uma é (local) e outra é <.MyInstanceName>),
Ainda não vi nenhum outro lugar para incluir o MyInstanceName. E o próximo botão me direciona uma autenticação e uma <Configuração do cliente>, nas quais eu posso definir <Nome do servidor>, <Nome do servidor> e verificar <Porta de determinação dinâmica>.

Respostas:

14

O que fez o meu servidor SQL escutar TCPconexões na porta 1433 foi o seguinte ...

  1. Ferramentas de configuração / SQL Server Configuration Manager
  2. clique no nome da instância em SQL Server Network Configuration
  3. habilitar a TCPcomunicação
  4. Clique com o botão direito do mouse na TCPentrada de comunicação, escolhaProperties
  5. Clique na guia endereços IP
  6. Habilite todos os endereços IP que não sejam da VMnet e digite 1433 na Portentrada " IPAll ".
  7. Reinicie o SQL Server na guia Serviços do SQL Server
  8. Verifique sua configuração com netstat -an:

    C:\>netstat -an | find "1433"
      TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING
      TCP    [::]:1433              [::]:0                 LISTENING
enguia ghEEz
fonte
11
Esta é apenas uma solução que funciona para mim. Outros manuais nem dizem sobre a porta IPAII. Graças homem, você fez meu dia
QkiZ
13

Por que 52395 em vez de 1433

Instâncias nomeadas escutam em portas dinâmicas. É o trabalho do Sql Server Browser Service para informar os clientes da porta real. O Sql Browser escuta no UDP 1434 e responde a perguntas do formulário 'qual é a porta de escuta da instância "foo"?'. O serviço Sql Server Browser é necessário para os protocolos TCP e pipes nomeados. Os clientes usam o Navegador do SQL Server de forma transparente, sem necessidade de configuração especial. Simplesmente especificando um nome de instância na cadeia de conexão (ou no ODBC DSN), a biblioteca cliente sabe que precisa entrar em contato com o serviço Navegador do SQL Server primeiro.

Existem 3 serviços, SQL Server (MyInstanceName), SQL Server Agent (MyInstanceName) e SQL Server Browser. Os dois últimos estão parados

Obviamente, para o SQL Server Browser fazer seu trabalho, ele precisa ser iniciado. Inicie e altere o tipo de inicialização para automático.

Como observação lateral, uma configuração alternativa frequentemente usada é usar portas estáticas para a instância nomeada e especificar a porta na cadeia de conexão ( tcp:<hostname>:<port>). Ele tem a vantagem de tirar o SQL Server Browser da equação, mas requer manutenção cuidadosa dos clientes. Alterar a porta de atendimento requer alterações orquestradas em todos os clientes, máquinas e locais, geralmente uma grande dor. Eu recomendo a dependência do SQL Server Browser.

Remus Rusanu
fonte
1

Firewalls - 3 deles

Pessoas que não estão familiarizadas com as versões mais recentes do Windows (não me sinto confortável com nada após o XP e estava tentando instalar o SQL Server no Windows 10):

  • Seu firewall precisa ser ativado em 3 locais separados (ou seja, para 3 perfis diferentes).

Se você fizer apenas o primeiro que você vê (Perfil de Domínio), continuará se perguntando por que pode se conectar à porta 80 (IIS), mas não ao 1433 (SQL Server).

insira a descrição da imagem aqui

Sridhar Sarnobat
fonte
1

Ainda não posso comentar (reputação baixa, pois não muito ativo): mas desabilitar o Firewall do Windows, como mencionado acima, é a pior resposta possível. Correto seria: Crie regras de firewall em "entrada" para permitir a comunicação da porta 1433 nos IPs locais (ou todos) que você precisa. E também recomendo definir quais IPs remotos podem se conectar ao SQL Server.

JouMxyzptlk
fonte