Så du har en
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Kommunikationslänkfel
java.net.ConnectException:Anslutning nekad
Jag citerar från det här svaret som också innehåller en steg-för-steg MySQL+JDBC handledning:
Om du får en
SQLException: Connection refused
ellerConnection timed out
eller en MySQL-specifikCommunicationsException: Communications link failure
, då betyder det att DB inte är tillgänglig alls. Detta kan ha en eller flera av följande orsaker:
- IP-adress eller värdnamn i JDBC URL är fel.
- Värdnamn i JDBC URL känns inte igen av den lokala DNS-servern.
- Portnummer saknas eller är fel i JDBC URL.
- DB-servern är nere.
- DB-servern accepterar inte TCP/IP-anslutningar.
- DB-servern har slut på anslutningar.
- Något mellan Java och DB blockerar anslutningar, t.ex. en brandvägg eller proxy.
För att lösa det ena eller det andra, följ följande råd:
- Verifiera och testa dem med
ping
.- Uppdatera DNS eller använd IP-adressen i JDBC URL istället.
- Verifiera det baserat på
my.cnf
av MySQL DB.- Starta DB.
- Verifiera om mysqld har startat utan alternativet
--skip-networking option
.- Starta om DB:n och fixa din kod så att den stänger anslutningarna
finally
.- Inaktivera brandvägg och/eller konfigurera brandvägg/proxy för att tillåta/vidarebefordra porten.
Se även:
- Hur ska jag ansluta till JDBC-databas/datakälla i en servletbaserad applikation?
- Är det säkert att använda en statisk java.sql.Connection-instans i ett flertrådat system?