Java Database Connectivity (JDBC) es la API de Java que le permite acceder y ejecutar consultas y comandos en una base de datos.
Este artículo describe algunos pasos para solucionar los problemas de com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
error, que ocurre cuando intenta conectarse a una base de datos usando JDBC.
El Communications link failure
se produce un error cuando no se puede acceder a la base de datos. Las siguientes son las posibles causas y sus soluciones:
La dirección IP o el nombre de host en URL de JDBC está mal.
Verifique y pruebe que el nombre de host o la dirección IP pueden responder usando ping
.
El servidor DNS local no reconoce el nombre de host en la URL de JDBC
Actualice su DNS o use la dirección IP en URL de JDBC en su lugar.
Falta el número de puerto o es incorrecto en URL de JDBC
Verifique que la IP esté bien configurada en la base de datos MySQL® my.cnf archivo utilizando su editor de texto favorito.
Para encontrar my.cnf archivo, ejecute el siguiente comando para comprobar la configuración de MySQL:
mysql --help | grep "Default options" -A 1
Si aún no puede encontrar el archivo, intente ejecutar el siguiente comando:
find / -name my.cnf
También puede buscar en las ubicaciones predeterminadas:
- /etc/my.cnf
- /etc/mysql/my.cnf
- /usr/etc/my.cnf
- ~/.mi.cnf
El servidor de base de datos no acepta conexiones TCP/IP
Verifique que mysqld
el servicio se está ejecutando. Para verificar el estado de mysqld
servicio, ejecute los siguientes comandos según su distribución de Linux®:
Para CentOS® 6 o Red Hat® Enterprise Linux® (RHEL) 6:
service mariadb status
Para CentOS 7+ o RHEL 7+:
systemctl status mariadb.service
Para el sistema operativo Ubuntu®:
/etc/init.d/mysql status
La base de datos está inactiva o apagada
Ejecute el siguiente comando para iniciar la base de datos MySQL:
Para CentOS 6/RHEL 6:
service mariadb start
Para CentOS 7+/RHEL 7+:
systemctl start mariadb.service
Para el sistema operativo Ubuntu:
/etc/init.d/mysql start
El servidor de la base de datos se quedó sin conexiones
Reinicie la base de datos y vea si su código tiene algún problema al cerrar las conexiones.
Las conexiones entre Java y DB están bloqueando la comunicación
Deshabilite el firewall o el proxy. Alternativamente, configúrelos para permitir o reenviar el puerto. Si está utilizando CentOS 6/RHEL 6, revise el artículo de iptables.