Java Database Connectivity (JDBC) è l'API Java che consente di accedere ed eseguire query e comandi su un database.
Questo articolo descrive alcuni passaggi per la risoluzione dei problemi di com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
errore, che si verifica quando si tenta di connettersi a un database utilizzando JDBC.
Il Communications link failure
errore si verifica quando non è possibile raggiungere il database. Di seguito sono elencate le possibili cause e le loro soluzioni:
L'indirizzo IP o il nome host in URL JDBC è sbagliato.
Verifica e verifica che il nome host o l'indirizzo IP possano rispondere utilizzando ping
.
Il server DNS locale non riconosce il nome host nell'URL JDBC
Aggiorna il tuo DNS o usa l'indirizzo IP in URL JDBC invece.
Il numero di porta è mancante o errato nell'URL JDBC
Verifica che l'IP sia ben configurato nel database MySQL® my.cnf file utilizzando il tuo editor di testo preferito.
Per trovare il my.cnf file, esegui il comando seguente per verificare le impostazioni di MySQL:
mysql --help | grep "Default options" -A 1
Se ancora non riesci a trovare il file, prova a eseguire il comando seguente:
find / -name my.cnf
Puoi anche cercare nelle posizioni predefinite:
- /etc/my.cnf
- /etc/mysql/my.cnf
- /usr/etc/my.cnf
- ~/.my.cnf
Il server del database non accetta connessioni TCP/IP
Verifica che mysqld
il servizio è in esecuzione. Per verificare lo stato di mysqld
service, esegui i seguenti comandi in base alla tua distribuzione Linux®:
Per CentOS® 6 o Red Hat® Enterprise Linux® (RHEL) 6:
service mariadb status
Per CentOS 7+ o RHEL 7+:
systemctl status mariadb.service
Per il sistema operativo Ubuntu®:
/etc/init.d/mysql status
Il database è inattivo o spento
Esegui il comando seguente per avviare il database MySQL:
Per CentOS 6 / RHEL 6:
service mariadb start
Per CentOS 7+/RHEL 7+:
systemctl start mariadb.service
Per il sistema operativo Ubuntu:
/etc/init.d/mysql start
Il server del database ha esaurito le connessioni
Riavvia il database e verifica se il tuo codice ha un problema quando chiudi le connessioni.
Le connessioni tra Java e DB stanno bloccando la comunicazione
Disabilita il firewall o il proxy. In alternativa, configurali per consentire o inoltrare la porta. Se stai usando CentOS 6/RHEL 6, consulta l'articolo di iptables.