DB

DBeaver에서 MySQL Dump 시 소켓 연결 오류 해결

chanyoun 2026. 1. 29. 17:07
DBeaver에서 MySQL Dump 시 소켓 연결 오류 해결

DBeaver에서 MySQL Dump 시 소켓 연결 오류 해결

DBeaver에서 SSH 터널링으로 Docker 위에서 동작하는 MySQL에 접속해 쿼리는 정상 작동하는데, Dump(Data Transfer/Export)만 실행하면 Can't connect to local MySQL server through socket 오류가 발생하는 경우의 해결 방법을 정리합니다.

DBeaver dump 소켓 연결 오류

 

원인

DBeaver가 AWS EC2에 있는 MySQL에 접속할 때, 직접 접속(3306 포트 개방)이 막혀 있다면 SSH 터널링을 사용합니다.

이때 데이터의 흐름은 다음과 같습니다.

  1. DBeaver가 SSH 접속을 통해 EC2와 연결을 맺습니다.
  2. DBeaver는 로컬 Mac의 특정 포트(예: 37492)를 리스닝(Listening) 상태로 엽니다.
  3. 사용자가 쿼리를 날리면, DBeaver는 이 요청을 localhost:37492로 보냅니다.
  4. 이 신호는 SSH 터널을 타고 EC2로 넘어갑니다.
  5. EC2 내부에서 이 신호가 해독되어 localhost:3306(MySQL)으로 전달됩니다.

즉, 로컬 Mac의 37492 포트원격지 MySQL로 통하는 입구 역할을 합니다.

 

Dump 할 때만 오류가 나는 이유

평소 쿼리 실행(SELECT 등)은 DBeaver를 통해 이 터널을 잘 이용합니다. 하지만 Dump는 다릅니다.

Dump를 수행할 때 DBeaver는 로컬 Mac에 설치된 외부 프로그램인 mysqldump 바이너리 파일을 실행시킵니다. 이때 문제가 발생합니다.

 

문제의 상황

DBeaver가 mysqldump에게 명령을 내릴 때 대략 이렇게 명령합니다.

"localhost37492 포트에 DB 있으니까 거기로 접속해서 데이터 가져와!"

그런데 MySQL 계열의 클라이언트 프로그램(mysql, mysqldump)은 다음과 같이 작동합니다.

  • 호스트가 IP(127.0.0.1)로 주어지면 TCP/IP(네트워크) 연결을 시도합니다.
  • 호스트가 명칭(localhost)으로 주어지면 Unix Socket 파일 연결을 시도합니다.

오류의 원인: DBeaver가 터널링을 통해 열어둔 37492TCP 포트입니다. 하지만 mysqldumplocalhost라는 말을 듣고 로컬에 설치된 MySQL이라고 착각하여 /tmp/mysql.sock 같은 소켓 파일을 찾다가 연결을 못 하고 실패합니다.

 

MySQL 클라이언트 연결 방식 확인

실제로 localhost127.0.0.1의 동작 차이를 확인할 수 있습니다.

localhost 사용 시 (Unix Socket 시도):

$ mysql -h localhost -P 37492 -u test
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

포트를 명시했음에도 socket 파일을 찾으려고 시도합니다.

127.0.0.1 사용 시 (TCP/IP 시도):

$ mysql -h 127.0.0.1 -P 37492 -u test
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1:37492' (61)

TCP/IP 연결을 시도하며, 에러 메시지에 포트 번호(37492)가 포함됩니다.

 

해결 절차

DBeaver의 Dump 설정에서 호스트 설정을 명확하게 TCP로 강제해주면 해결됩니다.

  1. DBeaver에서 해당 DB 커넥션 우클릭 → Edit Connection을 선택합니다.

스크린샷 2026-01-29 오후 4.37.08

  1. 기존 localhost였던 Server Host 설정을 127.0.0.1로 변경합니다.

스크린샷 2026-01-29 오후 4.39.22

설정 변경 후 Dump를 다시 실행하면 성공적으로 완료되는 것을 확인할 수 있습니다.

'DB' 카테고리의 다른 글

h2 DB 연결 방법  (1) 2023.11.27
트랜잭션(transaction)  (1) 2023.11.22
커넥션 풀 및 데이터 소스  (0) 2023.10.25
JDBC  (0) 2023.10.25
MySQL) 프로시저를 사용하여 더미 데이터 만들기  (0) 2023.05.04