Questa è un'eccezione avvolta e non molto interessante. È la causa principale dell'eccezione che in realtà ci dice qualcosa sulla causa principale. Si prega di guardare un po' più in là nello stacktrace. È molto probabile che tu debba quindi affrontare una SQLException: Connection refused
o SQLException: Connection timed out
.
Se questo è vero anche nel tuo caso, allora tutte le possibili cause sono:
- L'indirizzo IP o il nome host nell'URL JDBC è errato.
- Il nome host nell'URL JDBC non è riconosciuto dal server DNS locale.
- Numero di porta mancante o errato nell'URL JDBC.
- Il server DB è inattivo.
- Il server DB non accetta connessioni TCP/IP.
- Qualcosa tra Java e DB sta bloccando le connessioni, ad es. un firewall o un proxy.
Per risolvere l'uno o l'altro, segui i seguenti consigli:
- Verificali e testali con
ping
. - Aggiorna il DNS o utilizza invece l'indirizzo IP nell'URL JDBC.
- Verificalo in base a
my.cnf
di MySQL DB. - Inizialo.
- Verifica se mysqld è stato avviato senza il
--skip-networking
opzione. - Disabilita il firewall e/o configura il firewall/proxy per consentire/inoltrare la porta.
A proposito (e non correlato al problema reale), non è necessario caricare il driver JDBC su ogni getConnection()
chiamata. È sufficiente una sola volta durante l'avvio.