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
- 정정 이력
- 2026-07-29 이후 기록 없음
- 관련 기술
현재 증상
- 애플리케이션 오류 메시지
- 데이터베이스 연결 실패
먼저 확인할 항목
현재 화면 또는 로그의 오류 문자열에 오류 코드 `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 ...가 화면 또는 로그에 표시됩니다.
확인
- 화면 또는 로그에서 오류 코드
2002와Can't connect to ...를 확인합니다. - 서버 호스트에서
mysqld프로세스가 실행 중인지 확인합니다. - 로컬 연결이면 Unix socket 경로를, TCP/IP 연결이면 포트 번호를 클라이언트 설정과 비교합니다.
- 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 + Cygwin | Cygwin의 localhost 접속에서 socket 오류 | localhost가 Unix socket 연결로 해석됨 | -h 127.0.0.1로 TCP 연결 강제 |
| Rails + 로컬 MySQL | /tmp/mysql.sock 접속 실패 | database.yml의 고정 경로가 실제 위치와 다름 | 고정 설정 제거 또는 서비스 재시작으로 socket 재생성 |
진단 순서
- [Observation] 실행 환경이 Linux, Windows의 Cygwin, Rails 중 어디인지 확인합니다.
- [Observation] 오류 메시지에 표시된 socket 경로가 실제 MySQL socket 위치와 일치하는지 확인합니다.
- [Observation] 서버 패키지 설치 상태를 확인합니다.
- [Observation] mysqld와 client 또는 애플리케이션 설정의 socket 경로를 비교합니다.
- [Observation] Cygwin에서
localhost를 사용 중이면-h 127.0.0.1로 TCP 연결을 시도합니다. - [Observation] Rails의
database.yml에 socket 경로가 고정되어 있으면 제거하거나 실제 위치와 일치시킵니다. - [Observation] 필요한 경우 MySQL 서비스를 재시작해 socket을 다시 만듭니다.
참고 자료
MySQL · 공식 자료 · 확인 범위: MySQL 공식 문서는 오류 2002가 MySQL 서버 미실행 또는 잘못된 Unix socket 파일 이름이나 TCP/IP 포트 번호를 일반적인 의미로 설명합니다., MySQL 공식 문서는 사용 중인 TCP/IP 포트가 방화벽 또는 포트 차단 서비스에 의해 차단되지 않았는지 확인하도록 안내합니다., MySQL 공식 문서는 mysqld 프로세스 실행 상태와 socket 파일 또는 포트 설정을 확인한 뒤 같은 연결을 재시도하도록 안내합니다. · 확인일: 2026-07-27
확인 범위: Linux에서 ERROR 2002가 발생했고 /var/run/mysqld/mysqld.sock 파일이 없었습니다., MySQL 서버 패키지가 설치되지 않았거나 mysqld와 client의 socket 경로가 달랐습니다., 서버 설치 상태와 my.cnf의 socket 경로를 확인하고 일치시켜 해결했습니다. · 확인일: 2026-07-29
확인 범위: Windows의 MySQL에는 연결되었지만 Cygwin에서 localhost 접속 시 ERROR 2002 socket 오류가 발생했습니다., Cygwin에서 localhost가 Unix socket 연결로 해석되었습니다., -h 127.0.0.1로 TCP 연결을 강제해 해결했습니다. · 확인일: 2026-07-29
확인 범위: Rails의 database.yml이 /tmp/mysql.sock을 고정해 로컬 MySQL 접속이 실패했습니다., 설정된 socket 경로가 실제 MySQL socket 위치와 일치하지 않았습니다., 잘못된 고정 설정을 제거하거나 MySQL 서비스를 재시작해 socket을 다시 만든 뒤 해결했습니다. · 확인일: 2026-07-29