Esta é uma exceção encapsulada e não é realmente interessante. É a causa raiz da exceção que realmente nos diz algo sobre a causa raiz. Por favor, olhe um pouco mais no stacktrace. A chance é grande de você enfrentar uma
SQLException: Connection refused
ou SQLException: Connection timed out
. Se isso também for verdade no seu caso, todas as causas possíveis são:
- O endereço IP ou nome do host no URL JDBC está incorreto.
- O nome do host no URL JDBC não é reconhecido pelo servidor DNS local.
- O número da porta está ausente ou incorreto no URL JDBC.
- O servidor de banco de dados está inativo.
- O servidor DB não aceita conexões TCP/IP.
- Algo entre Java e DB está bloqueando conexões, por exemplo, um firewall ou proxy.
Para resolver o um ou o outro, siga os seguintes conselhos:
- Verifique e teste-os com
ping
. - Atualize o DNS ou use o endereço IP no URL JDBC.
- Verifique com base em
my.cnf
do banco de dados MySQL. - Inicie.
- Verifique se o mysqld é iniciado sem o
--skip-networking
opção. - Desative o firewall e/ou configure o firewall/proxy para permitir/encaminhar a porta.
A propósito (e não relacionado ao problema real), você não precisa necessariamente carregar o driver JDBC em todos
getConnection()
ligar. Apenas uma vez durante a inicialização é suficiente.