Toto je zahalená výjimka a není opravdu zajímavá. Je to hlavní příčina výjimky, která nám ve skutečnosti říká něco o hlavní příčině. Podívejte se prosím trochu dále do stacktrace. Je velká šance, že pak budete čelit SQLException: Connection refused
nebo SQLException: Connection timed out
.
Pokud je to pravda i ve vašem případě, pak všechny možné příčiny jsou:
- 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.
- Něco mezi Javou a DB blokuje připojení, např. firewall nebo proxy.
Chcete-li vyřešit jeden nebo oba, 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. - Začněte.
- Ověřte, zda je mysqld spuštěno bez
--skip-networking
možnost. - Zakažte bránu firewall a/nebo nakonfigurujte bránu firewall/proxy tak, aby povolila/předala port.
Mimochodem (a nesouvisí to se skutečným problémem), nemusíte nutně načíst ovladač JDBC na každém getConnection()
volání. Stačí pouze jednou při spuštění.