오류일기

JPA설정 오류 (Socket fail to connct to host)

sami355 2023. 4. 7. 14:57

현상

  • ec2에 도커를 설치하고 도커위에 mariadb를 띄우고 로컬에서 mariadb로 jpa설정을 하던 도중 아래와 같은 오류가 나왔다.
  • jpa환경 설정을 하며 connector와 URL, id, paasword 모두 설정을 해주었지만 다음과 같이 Socket fail to connct to host 오류가 나왔다. (패킷이 응답 없다고 나왔다.)
  • 패킷이 응답 없다고 나왔다.
  • jpa에서 환경설정하고 톰캣을 띄우면 동작하지 않지만 MYSQLWorkbench에서는 올바르게 동작한다.

에러창

원인

  • ec2의 방화벽을 다음과 같이 설정을 해주어서 그런듯하다.잘못 설정한 방화벽

잘못 설정한 방확벽

고치는 법

  • 혹시 패킷 자체를 아예 받지 못하는 것인가 싶어 iterm을 통해 ec2로 ping을 날려보았고 예상대로 패킷자체를 받지 못하였다.

패킷을 보내지 못한다.

  • jpa에서의 접근을 허용하고 싶다면 소스가 0.0.0.0/0 뿐만 아니라 포트 범위도 전체로 잡아주어야 한다.

제대로 설정한 방화벽

  • 방화벽을 설정하니 다음과 같이 패킷이 정상적으로 보내진다.

올바르게 동작한다.

 

➕MYSQLWorkbench와 JPA모두 포트범위가 3306이라는데 MYSQLWorkbench만 되고 JPA는 안되었는지 모르겠다..

처음에는 JPA(JDBC)는 TCP로 통신하지 않아서 다음과 같은 에러가 생기는건가 하고 찾아봤지만 이 역시 TCP로 통신한다...