La conexión JDBC falló, error: la conexión TCP / IP al host falló

82

Quiero conectar el archivo de clase Java con el servidor SQL 2012. He iniciado sesión con la autenticación del servidor SQL. Pero recibo un error de conectividad.

ERROR: La conexión TCP / IP al host 127.0.0.1, puerto 1433 ha fallado. Error: "Conexión rechazada: conectar. Verifique las propiedades de la conexión. Asegúrese de que una instancia de SQL Server se esté ejecutando en el host y acepte conexiones TCP / IP en el puerto. Asegúrese de que las conexiones TCP al puerto no estén bloqueadas por un firewall . ".

Mi 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));
}
Aysha Nijhawan
fuente
La computadora local se ha negado a permitirle conectarse al puerto 1433. Es probable que se trate de un problema de firewall. También asegúrese de que haya algo realmente escuchando en el puerto
MadProgrammer

Respuestas:

203
  1. Abra el Administrador de configuración de SQL Server y luego expanda Configuración de red de SQL Server 2012.
  2. Haga clic en Protocolos para InstanceName y luego asegúrese de que TCP / IP esté habilitado en el panel derecho y haga doble clic en TCP / IP.
  3. En la pestaña Protocolo, observe el valor del elemento Escuchar todo.
  4. Haga clic en la pestaña Direcciones IP: Si el valor de Escuchar todo es sí, el número de puerto TCP / IP para esta instancia de SQL Server 2012 es el valor del elemento Puertos dinámicos TCP en IPAll. Si el valor de Escuchar todo es no, el número de puerto TCP / IP para esta instancia de SQL Server 2012 es el valor del elemento Puertos dinámicos TCP para una dirección IP específica.
  5. Asegúrese de que el puerto TCP sea 1433.
  6. Haga clic en Aceptar.

Si tiene más preguntas, hágamelo saber.

Gracias.

Príncipe
fuente
13
Y no olvide reiniciar su instancia de SQL después de realizar los cambios.
JimGoods
16
Reinicie su instancia de SQL de la siguiente manera: en el "Administrador de configuración de SQL Server" -> "Servicios de SQL Server 2012", haga clic con el botón derecho en "SQL Server" y seleccione "Reiniciar".
Desarrollador Marius Žilėnas
10
Preste atención a Asegúrese de que el puerto TCP sea 1433 bajo IPAII.
Desarrollador Marius Žilėnas
O cambie el número de puerto en su aplicación al valor de los puertos dinámicos TCP en IPAII. Eso es lo que hice para que esto funcione, porque no puedo cambiar el valor.
AlieneilA
111

Solución fácil

Vaya a Inicio-> Todos los programas-> Microsoft SQL Server 2012-> Herramienta de configuración -> Haga clic en Administrador de configuración de SQL Server -> Expandir Configuración de red de SQL Server-> Protocolo -> Habilitar el cuadro derecho de TCP / IP

Haga doble clic en TCP / IP y vaya a Direcciones IP. Toque y coloque el puerto 1433 debajo del puerto TCP.

ingrese la descripción de la imagen aquí

Md. Naushad Alam
fuente
2
Después de seguir estos pasos, tuve que detener y reiniciar mi servidor para que funcione. ¡Gracias!
bluefox
15

El error se explica por sí mismo:

  • Compruebe si su servidor SQL está realmente en funcionamiento
  • Compruebe que el nombre de host, el nombre de usuario y la contraseña del servidor SQL sean correctos
  • Verifique que no haya una regla de firewall que bloquee la conexión TCP al puerto 1433
  • Verifique que el host sea realmente accesible

Una buena comprobación que utilizo a menudo es usar telnet, por ejemplo, en un símbolo del sistema de Windows, ejecute:

telnet 127.0.0.1 1433

Si aparece una pantalla en blanco, indica que la conexión de red se estableció correctamente y no es un problema de red. Si aparece 'No se pudo abrir la conexión al host', entonces este es un problema de red

gerrytan
fuente
1
Intenté telnet 127.0.01 1433, dice Conectando a 127.0.01` no se pudo abrir la conexión al host o la conexión del puerto 1433 falló
Aysha Nijhawan
1
Por lo tanto, es muy probable que no haya instalado el servidor, que el servidor no se esté ejecutando o que tenga un firewall que impida la conexión. Normalmente, esto no es un problema del programa java
gerrytan
11

Vaya a Inicio-> Todos los programas-> Microsoft SQL Server 2012-> Herramienta de configuración -> Haga clic en Administrador de configuración de SQL Server. ingrese la descripción de la imagen aquí

Si ve que el estado del navegador de SQL Server / SQL Server está 'detenido', haga clic con el botón derecho en SQL Server / SQL Server Browser y haga clic en iniciar. En algunos casos, el estado anterior puede detenerse aunque se asigna la conexión TCP al puerto 1433.

Abdur Rahman
fuente
me ayudo mucho. El navegador se desactivó, que es un componente clave que debe estar ejecutándose para realizar conexiones con el cliente.
Mayur
3

Como dice el error, debe asegurarse de que su servidor SQL se esté ejecutando y esté escuchando en el puerto 1433. Si el servidor se está ejecutando, debe verificar si hay alguna regla de firewall que rechace la conexión en el puerto 1433.

Estos son los comandos que pueden resultar útiles para solucionar problemas:

  1. Utilizar netstat -a para verificar si el servidor SQL está escuchando en el puerto deseado
  2. Como gerrytan mencionó en la respuesta, puede intentar hacer lo telneten el host y el puerto
Juned Ahsan
fuente
Creo que OP está usando el servidor sql, no mysql
SpringLearner
@AyshaNijhawan ¿Ha comprobado el puerto que está escuchando? También intente conectarse al servidor SQL a través del símbolo del sistema o un cliente SQL utilizando la misma IP / puerto y credenciales.
Juned Ahsan
El puerto es 1433, y he intentado usarlo colocándolo en la cadena de conexión. Las canalizaciones con nombre, la memoria y TCP / IP están habilitados en la configuración N / W del servidor SQL -> Protocolos para MSSQLSERVER
Aysha Nijhawan
0

importante:
después de cualquier cambio o nueva configuración, debe reiniciar el SQLSERVERservicio. seguir services.mscadelanteWindows

Mahdi
fuente
0

Si está usando una instancia con nombre, el puerto que usa probablemente sea 1434, en lugar de 1433, así que compruébelo usando telnet o netstat antes mencionado.

Toshihiko
fuente
0

Abra la carpeta% windir% \ System32 y busque SQLServerManagerXX.msc

Por ejemplo:

C: \ Windows \ System32 \ SQLServerManager14.msc

Vaya a la configuración de protocolos y luego habilite el puerto TCP / IP es 1433 por defecto

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Ali Karaca
fuente