Това е обвито изключение и не е особено интересно. Това е основната причина на изключението, което всъщност ни казва нещо за първопричината. Моля, погледнете малко по-нататък в стека. Шансът е голям след това да се сблъскате с SQLException: Connection refused
или SQLException: Connection timed out
.
Ако това е вярно и във вашия случай, тогава всички възможни причини са:
- IP адресът или името на хоста в URL адреса на JDBC е грешен.
- Името на хост в JDBC URL не се разпознава от локалния DNS сървър.
- Номерът на порта липсва или е грешен в URL адреса на JDBC.
- DB сървърът не работи.
- DB сървърът не приема TCP/IP връзки.
- Нещо между Java и DB блокира връзките, напр. защитна стена или прокси.
За да разрешите едното или едното, следвайте следните съвети:
- Проверете и тествайте ги с
ping
. - Опреснете DNS или вместо това използвайте IP адрес в JDBC URL.
- Проверете го въз основа на
my.cnf
на MySQL DB. - Започнете.
- Проверете дали mysqld се стартира без
--skip-networking
опция. - Деактивирайте защитната стена и/или конфигурирайте защитната стена/прокси сървъра за разрешаване/пренасочване на порта.
Между другото (и несвързано с действителния проблем), не е задължително да зареждате JDBC драйвера на всеки getConnection()
обадете се. Само веднъж по време на стартиране е достатъчно.