컨테이너 기반(Docker) MySQL 서버 InteliJ 연동 오류 처리
오류 & 이슈

컨테이너 기반(Docker) MySQL 서버 InteliJ 연동 오류 처리

반응형

InteliJ IDE에서 DB 연동 중 아래와 같은 오류가 발생했다.

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server

당시 나의 오류 환경

SpringBatch 테스트를 위한 DB가 필요한 상황이었다.

  • 당시 오류 환경은 아래와 같았다.
  • Local에서 MySQL을 설치한 상태였다. (외부 접근 Port번호 3306 사용중)
  • 컨테이너 Server(MySQL)를 동작시킨 상황이었다.(외부 접근 Port번호 3307:3307) 사용

  • 위의 사진처럼 Port번호를 3307로 설정해도 접근이 안되는 문제가 발생했다.
  • 처음 연동시에는 도커의 동작을 3306:3306으로 실행했지만 Local의 MySQL서버와 연동이 되어 외부 접근 포트번호가 중첩되어 문제가 발생한 문제라 생각하였기 때문에 3307:3307로 설정해주었다.
  • 그러나 문제는 해결되지 않았고 InteliJ의 공식문서를 참조하여 해결의 실마리를 찾을 수 있었다.
 

Cannot connect to a database | IntelliJ IDEA

 

www.jetbrains.com

위의 공식문서의 DB의 기본 포트번호 설정에 대한 설명이 있다.

Server의 기본 내부 Port번호

  • 밑에서 3번째를 확인해보면 MySql의 기본 내부 Port번호가 3306으로 설정되어있는것을 확인할 수 있다.
  • 그래서 아래처럼 -P 옵션을 3307:3306으로 변경하여 동작하니까 DB 연동이 되었다.
$ docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=<password> -d -p 3307:3306 mysql:latest

성공적인 연동사진

PS.이 기록이 누군가의 삽질에 도움이 되었으면 좋겠습니다.

반응형