Saltar al contenido

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: falla en el enlace de comunicaciones

Solución:

Entonces, tienes un

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: falla en el enlace de comunicaciones
java.net.ConnectException: conexión rechazada

Estoy citando esta respuesta que también contiene un tutorial paso a paso de MySQL + JDBC:

Si obtienes un SQLException: Connection refused o Connection timed out o un MySQL específico CommunicationsException:
Communications link failure
, entonces significa que la base de datos no es accesible en absoluto. Esto puede tener una o más de las siguientes causas:

  1. La dirección IP o el nombre de host en la URL de JDBC son incorrectos.

  2. El servidor DNS local no reconoce el nombre de host en la URL de JDBC.
  3. Falta el número de puerto o es incorrecto en la URL de JDBC.
  4. El servidor de base de datos está inactivo.
  5. El servidor de base de datos no acepta conexiones TCP / IP.
  6. El servidor de base de datos se ha quedado sin conexiones.
  7. Algo entre Java y DB está bloqueando las conexiones, por ejemplo, un firewall o proxy.

Para solucionar uno u otro, siga los siguientes consejos:

  1. Verifíquelos y pruébelos con ping.
  2. Actualice el DNS o utilice la dirección IP en la URL de JDBC en su lugar.
  3. Verifíquelo en base a my.cnf de MySQL DB.
  4. Inicie la base de datos.
  5. Verifique si mysqld se inicia sin el --skip-networking option.
  6. Reinicie la base de datos y corrija su código en consecuencia que cierra las conexiones en finally.
  7. Deshabilite el firewall y / o configure el firewall / proxy para permitir / reenviar el puerto.

Ver también:

  • ¿Cómo debo conectarme a la base de datos / fuente de datos JDBC en una aplicación basada en servlet?
  • ¿Es seguro utilizar una instancia estática de java.sql.Connection en un sistema multiproceso?

Capturo esta excepción cuando Java se agota. Si trato de poner muchos elementos de datos en la RAM, primero los capturo “Fallo en el enlace de comunicaciones” y después “Error de memoria insuficiente“.

Lo logré y disminuyo el consumo de memoria (elimino 1/2 dato) y todo está bien.

En mi caso, necesitaba hacer un reemplazo de Localhost a la dirección IP del servidor de base de datos real

En lugar de

 Connection con = DriverManager.getConnection(
 "jdbc:mysql://localhost:3306/DBname", "root", "root");

lo necesitaba

 Connection con = DriverManager.getConnection(
 "jdbc:mysql://192.100.0.000:3306/DBname", "root", "root");
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *