DEV WIKI
백엔드 · 오류·증상

The error (2002) Can't connect to ...

MySQL 오류 2002는 서버가 실행 중이지 않거나 연결에 사용한 Unix socket 파일 이름 또는 TCP/IP 포트 번호가 올바르지 않을 때 일반적으로 표시됩니다.

빠른 답변

우선 확인할 원인
The error (2002) Can't connect to ...는 MySQL 서버가 실행 중이지 않거나 연결에 사용한 Unix socket 파일 이름 또는 TCP/IP 포트 번호가 올바르지 않을 때 일반적으로 표시됩니다.
먼저 확인할 항목
현재 화면 또는 로그의 오류 문자열에 오류 코드 `2002`와 `Can't connect to ...`가 포함되는지 확인합니다.
적용 범위
현재 증상과 본문에 적은 관찰 조건이 함께 확인된 경우
출처 확인일
2026-07-29
최종 검토
2026-07-27
수정일
2026-07-27
관련 기술
오류·수정 제보 (새 창에서 열림)

현재 증상

  • 애플리케이션 오류 메시지
  • 데이터베이스 연결 실패

먼저 확인할 항목

현재 화면 또는 로그의 오류 문자열에 오류 코드 `2002`와 `Can't connect to ...`가 포함되는지 확인합니다.

MySQL 서버 호스트에서 `mysqld` 프로세스가 실행 중인지 확인합니다. 프로세스가 없으면 서버가 실행되지 않은 상태입니다.

로컬 연결이면 실제 Unix socket 파일 경로와 클라이언트 설정의 socket 경로를, TCP/IP 연결이면 실제 포트와 클라이언트 설정의 포트를 비교합니다.

TCP/IP 연결이면 설정한 포트가 방화벽 또는 포트 차단 서비스에 막히지 않았는지 확인한 뒤 같은 연결을 다시 시도합니다.

피해야 할 조치

주의

  • Unix socket 파일 연결은 같은 컴퓨터에서만 사용할 수 있습니다.
  • 기본 Unix socket 파일과 TCP/IP 포트는 실제 설정과 다를 수 있습니다.
  • 운영 서버의 socket 경로·방화벽·서비스 상태를 한 번에 바꾸지 않습니다. 현재 값과 오류 시각을 기록하고 한 항목씩 재확인합니다.

환경별 원인과 조치

증상

The error (2002) Can't connect to ...가 화면 또는 로그에 표시됩니다.

확인

  1. 화면 또는 로그에서 오류 코드 2002Can't connect to ...를 확인합니다.
  2. 서버 호스트에서 mysqld 프로세스가 실행 중인지 확인합니다.
  3. 로컬 연결이면 Unix socket 경로를, TCP/IP 연결이면 포트 번호를 클라이언트 설정과 비교합니다.
  4. TCP/IP 포트가 방화벽 또는 포트 차단 서비스에 막히지 않았는지 확인합니다.

MySQL은 이 오류가 서버 미실행, 잘못된 socket 파일 경로 또는 잘못된 TCP/IP 포트에서 일반적으로 발생한다고 설명합니다.

재확인

원인이 확인되면 서비스 상태, socket 경로, 포트 또는 방화벽 중 한 항목만 수정하고 같은 연결을 다시 시도합니다.

주의사항

  • Unix socket 파일 연결은 같은 컴퓨터에서만 사용할 수 있습니다.
  • 기본 Unix socket 파일은 /tmp/mysql.sock이고 기본 MySQL 포트는 3306이지만, 실제 설정은 다를 수 있습니다.
  • 운영 서버의 socket 경로·방화벽·서비스 상태를 한 번에 바꾸지 마세요.

출처: MySQL 8.0 Reference Manual — Can't connect to [local] MySQL server (새 창에서 열림)

원인 분포

[Observation] 입력된 3건의 사례에서는 다음 원인이 관찰되었습니다.

  • Linux 사례에서 MySQL 서버 패키지 미설치 또는 mysqld와 client의 socket 경로 불일치가 있었습니다.
  • Cygwin 사례에서 localhost가 Unix socket 연결로 해석되었습니다.
  • Rails 사례에서 database.yml이 실제 위치와 다른 /tmp/mysql.sock을 고정했습니다.

[Observation] 이 분포는 관측된 사례 기준이며 실제 발생 빈도를 의미하지 않습니다.

오진 함정

  • [Observation] ERROR 2002가 발생해도 MySQL 서버가 실행되지 않는 경우로만 단정할 수 없습니다. 서버 패키지 설치 상태, socket 경로 불일치, localhost의 연결 방식 해석이 각각 사례의 원인이었습니다.
  • [Observation] Windows의 MySQL에 연결되더라도 Cygwin의 localhost 연결에서는 Unix socket 오류가 발생할 수 있습니다.
  • [Observation] Rails 설정에 socket 경로가 고정되어 있으면 실제 socket 위치와 달라 접속이 실패할 수 있습니다.

환경 매트릭스

환경증상확인된 원인수정
Linux/var/run/mysqld/mysqld.sock 누락과 ERROR 2002서버 패키지 미설치 또는 mysqld/client socket 경로 불일치서버 설치 상태 확인 및 my.cnf 경로 일치
Windows + CygwinCygwin의 localhost 접속에서 socket 오류localhost가 Unix socket 연결로 해석됨-h 127.0.0.1로 TCP 연결 강제
Rails + 로컬 MySQL/tmp/mysql.sock 접속 실패database.yml의 고정 경로가 실제 위치와 다름고정 설정 제거 또는 서비스 재시작으로 socket 재생성

진단 순서

  1. [Observation] 실행 환경이 Linux, Windows의 Cygwin, Rails 중 어디인지 확인합니다.
  2. [Observation] 오류 메시지에 표시된 socket 경로가 실제 MySQL socket 위치와 일치하는지 확인합니다.
  3. [Observation] 서버 패키지 설치 상태를 확인합니다.
  4. [Observation] mysqld와 client 또는 애플리케이션 설정의 socket 경로를 비교합니다.
  5. [Observation] Cygwin에서 localhost를 사용 중이면 -h 127.0.0.1로 TCP 연결을 시도합니다.
  6. [Observation] Rails의 database.yml에 socket 경로가 고정되어 있으면 제거하거나 실제 위치와 일치시킵니다.
  7. [Observation] 필요한 경우 MySQL 서비스를 재시작해 socket을 다시 만듭니다.

참고 자료

MySQL :: MySQL 8.0 Reference Manual :: B.3.2.2 Can't connect to [local] MySQL server (새 창에서 열림)

MySQL · 공식 자료 · 확인 범위: MySQL 공식 문서는 오류 2002가 MySQL 서버 미실행 또는 잘못된 Unix socket 파일 이름이나 TCP/IP 포트 번호를 일반적인 의미로 설명합니다., MySQL 공식 문서는 사용 중인 TCP/IP 포트가 방화벽 또는 포트 차단 서비스에 의해 차단되지 않았는지 확인하도록 안내합니다., MySQL 공식 문서는 mysqld 프로세스 실행 상태와 socket 파일 또는 포트 설정을 확인한 뒤 같은 연결을 재시도하도록 안내합니다. · 확인일: 2026-07-27

Stack Overflow · 운영 사례 (새 창에서 열림)

확인 범위: Linux에서 ERROR 2002가 발생했고 /var/run/mysqld/mysqld.sock 파일이 없었습니다., MySQL 서버 패키지가 설치되지 않았거나 mysqld와 client의 socket 경로가 달랐습니다., 서버 설치 상태와 my.cnf의 socket 경로를 확인하고 일치시켜 해결했습니다. · 확인일: 2026-07-29

Stack Overflow · 운영 사례 (새 창에서 열림)

확인 범위: Windows의 MySQL에는 연결되었지만 Cygwin에서 localhost 접속 시 ERROR 2002 socket 오류가 발생했습니다., Cygwin에서 localhost가 Unix socket 연결로 해석되었습니다., -h 127.0.0.1로 TCP 연결을 강제해 해결했습니다. · 확인일: 2026-07-29

Stack Overflow · 운영 사례 (새 창에서 열림)

확인 범위: Rails의 database.yml이 /tmp/mysql.sock을 고정해 로컬 MySQL 접속이 실패했습니다., 설정된 socket 경로가 실제 MySQL socket 위치와 일치하지 않았습니다., 잘못된 고정 설정을 제거하거나 MySQL 서비스를 재시작해 socket을 다시 만든 뒤 해결했습니다. · 확인일: 2026-07-29