DBeaver - docker mysql Connection Fail (Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.)

     

    docker로 각기 다른 포트의 mysql를 띄우고 싶었다. 

    어찌어찌 띄우는 건 성공했는데, DBeaver에서 접속하려고 하니 에러가 발생했다.

     

     

     

    도대체 왜!

     

    울지말고 확인해보자..

     


    Version

    Version
    OS mac m1
    Docker 25.0.3
    Docker Desktop  4.27.2 (137060)
    Mysql 8.3.0
    DBeaver 23.3.4.

     

    ERROR

    Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.

     

     

    Mysql의 Global Port를 확인해 보자

    확인 방법

    1. mysql DB 접속

    터미널에서 아래 명령어를 입력하면 mysql DB에 접속할 수 있다. 

    docker exec -it {컨테이너명} mysql -u root -p

    E.g) docker exec -it mysql-stg mysql -u root -p

     

    Enter password : 비밀번호 입력

     

    아래와 같은 화면이 뜨면 DB에 접속된 것이다.

     

     

     

     

    2. 쿼리 실행

    아래 쿼리 실행하면 된다.

    show global variables like ‘PORT’;

     

     

     

    컨테이너는 3307로 띄웠지만, mysql 설정을 변경해주지 않아 기본 포트인 3306으로 바라보고 있었던 것이다.

    해결방법

    1. /etc/my.cnf 수정

    Docker Desktop에서 컨테이너 클릭 > Files 탭 

    /etc/my.cnf 파일 선택 후 'Open file editor’ 클릭 

     

    아래와 같이 port 설정 > 저장 

     

    2. 재기동

    3. 변경 포트 확인 

    Mysql DB 접속해서 변경된 포트 확인해 보면 다음과 같이 3307로 변경되었다.

     

    4. DBeaver - Mysql 연결

    나는 로컬 환경이라 port만 3307로 변경해 줬다.

     

     

    4-1. 정상적으로 연결된 경우

     

    4-2. 또 다른 에러가 발생한 경우 (Public Key Retrieval is not allowed)

     

    Edit Connection > Driver properties 탭 > allowPublicKeyRetrieval을 TURE로 변경(default : false) 

     

     

    🪓 삽질

    더보기

    my.cnf 파일 수정해야 하는데 컨테이너 내부에는 vi 설치가 안되어 있어서 이것저것 삽질을 했다.

    구글링 해보니 Docker Desktop에서 바로 파일을 수정할 수 있었음 ^^;

    나는 4.1x.x 버전을 사용하고 있었고, 해당 버전에는 Files 탭이 없길래 4.27.x로 업그레이드했더니 바-로 수정되었다. 


    참고 블로그

    https://sg-moomin.tistory.com/entry/세무민의-코딩일기-docker에-올린-mariaDB와-dbeaver-연결-중-socket-was-closed-by-server-오류-해결하기

     

    세무민의 코딩일기 : docker에 올린 mariaDB와 dbeaver 연결 중 socket was closed by server 오류 해결하기

    안녕하세요 세기무민입니다. 오늘 포스팅은 저의 삽질로 알아낸 그런 슬픈 글입니다.. 세무민의 코딩일기 : docker 설치 및 DB 연결하기(MariaDB) 안녕하세요 세무민입니다. 이번에 다뤄볼 내용은 도

    sg-moomin.tistory.com

     

    728x90

    댓글