Dit is een ingepakte uitzondering en niet echt interessant. Het is de hoofdoorzaak van de uitzondering die ons eigenlijk iets vertelt over de oorzaak. Kijk dan even verder in de stacktrace. De kans is groot dat je dan te maken krijgt met een SQLException: Connection refused
of SQLException: Connection timed out
.
Als dit in jouw geval ook zo is, dan zijn alle mogelijke oorzaken:
- IP-adres of hostnaam in JDBC-URL is verkeerd.
- Hostnaam in JDBC-URL wordt niet herkend door lokale DNS-server.
- Poortnummer ontbreekt of is verkeerd in JDBC-URL.
- DB-server is uitgevallen.
- DB-server accepteert geen TCP/IP-verbindingen.
- Iets tussen Java en DB blokkeert verbindingen, b.v. een firewall of proxy.
Volg de volgende adviezen om een van beide op te lossen:
- Verifieer en test ze met
ping
. - Vernieuw DNS of gebruik in plaats daarvan het IP-adres in de JDBC-URL.
- Verifieer het op basis van
my.cnf
van MySQL DB. - Begin ermee.
- Controleer of mysqld is gestart zonder de
--skip-networking
optie. - Schakel firewall uit en/of configureer firewall/proxy om de poort toe te staan/door te sturen.
Overigens (en niet gerelateerd aan het werkelijke probleem), hoeft u het JDBC-stuurprogramma niet per se op elke te laden getConnection()
telefoongesprek. Slechts één keer tijdens het opstarten is voldoende.