Dette er en indpakket undtagelse og ikke rigtig interessant. Det er grundårsagen af undtagelsen, som faktisk fortæller os noget om grundårsagen. Se venligst lidt længere i stacktrace. Chancen er stor for, at du så står over for en SQLException: Connection refused
eller SQLException: Connection timed out
.
Hvis dette også er sandt i dit tilfælde, så er alle mulige årsager:
- IP-adresse eller værtsnavn i JDBC URL er forkert.
- Værtsnavn i JDBC URL genkendes ikke af den lokale DNS-server.
- Portnummer mangler eller er forkert i JDBC URL.
- DB-serveren er nede.
- DB-serveren accepterer ikke TCP/IP-forbindelser.
- Noget mellem Java og DB blokerer forbindelser, f.eks. en firewall eller proxy.
For at løse det ene eller det ene, følg følgende råd:
- Bekræft og test dem med
ping
. - Opdater DNS, eller brug IP-adressen i JDBC URL i stedet.
- Bekræft det baseret på
my.cnf
af MySQL DB. - Start den.
- Bekræft, om mysqld er startet uden
--skip-networking
mulighed. - Deaktiver firewall og/eller konfigurer firewall/proxy for at tillade/viderestille porten.
Forresten (og ikke relateret til det faktiske problem), behøver du ikke nødvendigvis at indlæse JDBC-driveren på hver getConnection()
opkald. Kun én gang under opstart er nok.