Takže máte
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Selhání komunikačního spojení
java.net.ConnectException:Připojení odmítnuto
Cituji z této odpovědi který také obsahuje podrobný výukový program MySQL+JDBC:
Pokud se zobrazí
SQLException: Connection refused
neboConnection timed out
neboCommunicationsException: Communications link failure
specifická pro MySQL , pak to znamená, že DB není vůbec dosažitelná. To může mít jednu nebo více z následujících příčin:
- IP adresa nebo název hostitele v adrese URL JDBC je nesprávná.
- Název hostitele v adrese URL JDBC není rozpoznán místním serverem DNS.
- Číslo portu v adrese URL JDBC chybí nebo je nesprávné.
- Server DB nefunguje.
- DB server nepřijímá připojení TCP/IP.
- Serveru DB došla připojení.
- Něco mezi Javou a DB blokuje připojení, např. firewall nebo proxy.
Chcete-li vyřešit jedno nebo druhé, postupujte podle následujících rad:
- Ověřte a otestujte je pomocí
ping
.- Obnovte DNS nebo místo toho použijte IP adresu v JDBC URL.
- Ověřte jej na základě
my.cnf
databáze MySQL.- Spusťte DB.
- Ověřte, zda je mysqld spuštěno bez možnosti
--skip-networking option
.- Restartujte DB a opravte svůj kód tak, aby
finally
uzavřel připojení .- Zakažte bránu firewall a/nebo nakonfigurujte bránu firewall/proxy tak, aby povolila/předala port.
Viz také:
- Jak se mám připojit k databázi/zdroji dat JDBC v aplikaci založené na servletech?
- Je bezpečné používat statickou instanci java.sql.Connection ve vícevláknovém systému?