sql >> Base de Datos >  >> RDS >> Mysql

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

Esta es una excepción envuelta y no es realmente interesante. Es la causa raíz de la excepción que en realidad nos dice algo sobre la causa raíz. Mire un poco más en el stacktrace. Es muy probable que se enfrente a una SQLException: Connection refused o SQLException: Connection timed out .

Si esto también es cierto en su caso, entonces todas las posibles causas son:

  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 DB está inactivo.
  5. El servidor DB no acepta conexiones TCP/IP.
  6. Algo entre Java y DB está bloqueando las conexiones, p. un cortafuegos o proxy.

Para resolver el uno o el otro, sigue los siguientes consejos:

  1. Verifíquelos y pruébelos con ping .
  2. Actualice el DNS o use la dirección IP en la URL de JDBC en su lugar.
  3. Verifíquelo según my.cnf de base de datos MySQL.
  4. Empiece.
  5. Verificar si mysqld se inicia sin --skip-networking opción.
  6. Desactive el firewall y/o configure el firewall/proxy para permitir/reenviar el puerto.

Por cierto (y sin relación con el problema real), no necesariamente necesita cargar el controlador JDBC en todos getConnection() llamar. Solo una vez durante el inicio es suficiente.