Entonces, tienes un
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:falla del enlace de comunicaciones
java.net.ConnectException:conexión rechazada
Cito de esta respuesta que también contiene un tutorial paso a paso de MySQL+JDBC:
Si obtiene una SQLException: Connection refused
o Connection timed out
o una CommunicationsException:
Communications link failure
específica de MySQL , entonces significa que no se puede acceder a la base de datos. Esto puede tener una o más de las siguientes causas:
- La dirección IP o el nombre de host en la URL de JDBC son incorrectos.
- El servidor DNS local no reconoce el nombre de host en la URL de JDBC.
- Falta el número de puerto o es incorrecto en la URL de JDBC.
- El servidor DB está inactivo.
- El servidor DB no acepta conexiones TCP/IP.
- El servidor DB se ha quedado sin conexiones.
- Algo entre Java y DB está bloqueando las conexiones, p. un cortafuegos o proxy.
Para solucionar lo uno o lo otro, sigue los siguientes consejos:
- Verifíquelos y pruébelos con
ping
. - Actualice el DNS o use la dirección IP en la URL de JDBC en su lugar.
- Verifíquelo según
my.cnf
de base de datos MySQL. - Inicie la base de datos.
- Verifique si mysqld se inicia sin la opción
--skip-networking option
. - Reinicie la base de datos y corrija su código de manera que cierre las conexiones en
finally
. - Desactive el cortafuegos y/o configure el cortafuegos/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 usar una instancia java.sql.Connection estática en un sistema multiproceso?