Så du har en
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Kommunikationsforbindelsesfejl
java.net.ConnectException:Forbindelse nægtet
Jeg citerer fra dette svar som også indeholder en trin-for-trin MySQL+JDBC tutorial:
Hvis du får en SQLException: Connection refused
eller Connection timed out
eller en MySQL-specifik CommunicationsException:
Communications link failure
, så betyder det, at DB'en slet ikke er tilgængelig. Dette kan have en eller flere af følgende å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.
- DB-serveren er løbet tør for forbindelser.
- Noget mellem Java og DB blokerer forbindelser, f.eks. en firewall eller proxy.
For at løse det ene eller det andet, 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 DB.
- Bekræft, om mysqld er startet uden
--skip-networking option
. - Genstart DB, og ret din kode i overensstemmelse hermed, så den lukker forbindelser i
finally
. - Deaktiver firewall og/eller konfigurer firewall/proxy for at tillade/viderestille porten.
Se også:
- Hvordan skal jeg oprette forbindelse til JDBC-database/datakilde i et servlet-baseret program?
- Er det sikkert at bruge en statisk java.sql.Connection-instans i et multithreaded-system?