Falha na conexão JDBC, erro: a conexão TCP / IP com o host falhou

Eu quero conectar o arquivo de class Java com o SQL Server 2012. Eu fiz o login com a autenticação do servidor SQL. Mas estou recebendo erro na conectividade.

ERRO: A conexão TCP / IP com o host 127.0.0.1, porta 1433 falhou. Erro: “Conexão recusada: conectar. Verifique as propriedades da conexão. Certifique-se de que uma instância do SQL Server esteja sendo executada no host e aceitando conexões TCP / IP na porta. Verifique se as conexões TCP com a porta não estão bloqueadas por um firewall “.

Meu código —

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //1. Register your driver //2. get the connection object //Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost;databaseName=aysha","sa","admin"); Connection con = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1;databaseName=aysha","user=sa","password=admin"); //"jdbc:sqlserver://127.0.0.1:1433; Instance=SQL2008;" + "databaseName=MB;user=sa;password=123;"; //Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=aysha","sa" , "password"); //3. Prepare a statement Statement stmt = con.createStatement(); //4. Write the query` String sql = "Select * from employee"; //5. Execute the statement and ResultSet rs = stmt.executeQuery(sql); //6. Process the result set while (rs.next()) { System.out.println(rs.getInt(1)); } 

  1. Abra o SQL Server Configuration Manager e expanda Configuração de Rede do SQL Server 2012.
  2. Clique em Protocolos para InstanceName e verifique se o TCP / IP está ativado no painel direito e clique duas vezes em TCP / IP.
  3. Na guia Protocolo, observe o valor do item Listen All.
  4. Clique na guia Endereços IP: Se o valor de Listen All for yes, o número da porta TCP / IP para essa instância do SQL Server 2012 será o valor do item TCP Dynamic Ports em IPAll. Se o valor de Listen All for não, o número da porta TCP / IP para essa instância do SQL Server 2012 será o valor do item TCP Dynamic Ports para um endereço IP específico.
  5. Verifique se a porta TCP é 1433.
  6. Clique OK.

Se houver mais alguma pergunta, por favor me avise.

Obrigado.

Solução Fácil

Tem que começar-> Todos os Programas-> Microsoft SQL Server 2012-> Ferramenta de Configuração -> Clique em SQL Server Configuration Manager -> Expandir Configuração de Rede do SQL Server-> Protocolo -> Ativar checkbox TCP / IP Direito

Clique duas vezes em TCP / IP e vá para Endereços IP Toque e coloque a porta 1433 na porta TCP.

insira a descrição da imagem aqui

O erro é auto-explicativo:

  • Verifique se o seu servidor SQL está realmente funcionando
  • Verifique o nome do host, nome de usuário e senha do servidor SQL está correto
  • Verifique se não há nenhuma regra de firewall bloqueando a conexão TCP à porta 1433
  • Verifique se o host está realmente acessível

Uma boa checagem que costumo usar é usar o telnet, por exemplo, em um prompt de comando do windows, execute:

 telnet 127.0.0.1 1433 

Se você obtiver uma canvas em branco, indica que a conexão de rede foi estabelecida com sucesso e não é um problema de rede. Se você receber ‘Não foi possível abrir a conexão com o host’, este é um problema de rede

Vá para Iniciar -> Todos os Programas -> Microsoft SQL Server 2012 -> Ferramenta de Configuração -> Clique em SQL Server Configuration Manager. insira a descrição da imagem aqui

Se você vir que o estado do navegador do SQL Server / SQL Server está ‘parado’. Clique direito no navegador do SQL Server / SQL Server e clique em Iniciar. Em alguns casos, o estado acima pode parar enquanto a conexão TCP à porta 1433 é atribuída.

Como o erro diz, você precisa ter certeza de que o seu servidor sql está rodando e ouvindo na porta 1433. Se o servidor estiver rodando, você precisa verificar se existe alguma regra de firewall rejeitando a conexão na porta 1433.

Aqui estão os comandos que podem ser úteis para solucionar problemas:

  1. Use netstat -a para verificar se o servidor sql está escutando na porta desejada
  2. Como gerrytan mencionado em resposta, você pode tentar fazer o telnet no host e porta