Ini adalah pengecualian yang dibungkus dan tidak terlalu menarik. Ini adalah akar penyebab pengecualian yang sebenarnya memberitahu kita sesuatu tentang akar penyebab. Silakan lihat sedikit lebih jauh di stacktrace. Kemungkinan besar Anda kemudian akan menghadapi SQLException: Connection refused
atau SQLException: Connection timed out
.
Jika hal ini juga terjadi pada kasus Anda, maka semua kemungkinan penyebabnya adalah:
- Alamat IP atau nama host di URL JDBC salah.
- Nama host di URL JDBC tidak dikenali oleh server DNS lokal.
- Nomor port tidak ada atau salah di URL JDBC.
- Server DB mati.
- Server DB tidak menerima koneksi TCP/IP.
- Sesuatu di antara Java dan DB memblokir koneksi, mis. firewall atau proxy.
Untuk menyelesaikan salah satu atau keduanya, ikuti saran berikut:
- Verifikasi dan uji dengan
ping
. - Segarkan DNS atau gunakan alamat IP di URL JDBC.
- Verifikasi berdasarkan
my.cnf
dari MySQL DB. - Mulailah.
- Verifikasi apakah mysqld dimulai tanpa
--skip-networking
pilihan. - Nonaktifkan firewall dan/atau konfigurasikan firewall/proxy untuk mengizinkan/meneruskan port.
Omong-omong (dan tidak terkait dengan masalah sebenarnya), Anda tidak perlu memuat driver JDBC di setiap getConnection()
panggilan. Cukup sekali saja saat startup.