Mysql
 sql >> Baza danych >  >> RDS >> Mysql

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Błąd łącza komunikacyjnego

To zawinięty wyjątek i niezbyt interesujący. Jest to pierwotna przyczyna wyjątku, który faktycznie mówi nam coś o pierwotnej przyczynie. Proszę spojrzeć nieco dalej w stacktrace. Istnieje duża szansa, że ​​napotkasz wtedy SQLException: Connection refused lub SQLException: Connection timed out .

Jeśli tak jest również w Twoim przypadku, wszystkie możliwe przyczyny to:

  1. Adres IP lub nazwa hosta w adresie URL JDBC jest nieprawidłowy.
  2. Nazwa hosta w adresie URL JDBC nie jest rozpoznawana przez lokalny serwer DNS.
  3. Brak numeru portu lub jest on nieprawidłowy w adresie URL JDBC.
  4. Serwer DB nie działa.
  5. Serwer DB nie akceptuje połączeń TCP/IP.
  6. Coś pomiędzy Javą a DB blokuje połączenia, np. zapora lub serwer proxy.

Aby rozwiązać jeden lub jeden z nich, postępuj zgodnie z następującymi wskazówkami:

  1. Zweryfikuj i przetestuj je za pomocą ping .
  2. Odśwież DNS lub użyj adresu IP w adresie URL JDBC.
  3. Zweryfikuj go na podstawie my.cnf bazy danych MySQL.
  4. Uruchom to.
  5. Sprawdź, czy mysqld jest uruchomiony bez --skip-networking opcja.
  6. Wyłącz zaporę i/lub skonfiguruj zaporę/proxy, aby zezwolić/przekierować port.

Nawiasem mówiąc (i bez związku z rzeczywistym problemem), niekoniecznie musisz ładować sterownik JDBC na każdym getConnection() połączenie. Wystarczy tylko raz podczas uruchamiania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zaktualizuj wiersz danymi z innego wiersza w tej samej tabeli

  2. Porządkowanie według kolejności wartości w klauzuli SQL IN()

  3. Jak szukać ukośnika (\) w MySQL? i dlaczego ucieczka (\) nie jest wymagana dla gdzie (=), ale dla Like jest wymagana?

  4. Jak uzyskać ostatni dzień miesiąca w MySQL?

  5. Połącz się z serwerem MySQL przez SSH w PHP