개발 관련/ERROR

DB 연결 에러 [ERROR] connection failed: connection to server at "127.0.0.1", port 5432 failed: "postgres" password

쩨나 2026. 3. 28. 14:58

postgresql을 docker에서 실행한 후, pgAdmin에 연결을 하려 하는데 에러가 났습니다.

 

사실 아래처럼 글자가 깨져서, password가 틀려서 5432 port, localhost로 접속을 못하는구나만 추측했습니다.
 

```

Unable to connect to server:

 

connection failed: connection to server at "127.0.0.1", port 5432 failed: ġ��������: ����� "postgres"�� password ������ �����߽��ϴ�

```

=>

아래로 유추 

```

Unable to connect to server:
connection failed: connection to server at "127.0.0.1", port 5432 failed: ġ:  "postgres" password  ߽ϴ

```

 

=> 비밀번호 인증(Password Authentication) 단계에서 거부됨

 

 

------

어쩌다가 이 에러를 얻었냐면..

database 등록 화면(pgAdmin4)

pgAdmin에서 database 등록하다가 이 에러를 얻었다.

하도 안되서 pgAdmin의 문제인가 싶어서 업데이트도 하고, DBeaver에서도 실행했는데 같은 오류를 얻었다.

 

database 등록 화면( DBeaver )

 

pgAdmin의 Connection 설정 목록

  • Host name/address: 127.0.0.1 (또는 localhost)
  • Port: (5432->)5433 (방금 설정한 외부 노출 포트)
  • Maintenance database: postgres
  • Username: postgres
  • Password: postgres

 

 

그 와중에, pgvector-volumn을 생성해놓고 pgdata를 없애는 명령어를 입력함.(=> 이름 확인!!)

( => # 스크립트에서 사용 중인 정확한 볼륨 이름 삭제 (이게 핵심!)

docker volume rm pgvector-volume)

 

 

🔍 시도해 본 방법들

 

1) Docker 컨테이너 및 볼륨 초기화 기존 데이터베이스 설정이나 비밀번호가 남아있을까봐 컨테이너를 지우고 볼륨까지 완전히 삭제한 뒤 다시 생성해 봤습니다. (코드로도하고, docker desktop에서 직접 삭제도 함)

  • docker rm -f pgvector
  • docker volume rm pgvector-volume  (volumn 이름 맞추기)

```

# pgvector1.ps1 실행 => powershell에서 ./pgvector1.ps1

# 1. 기존 컨테이너 및 볼륨 완전 삭제 (초기화)

## 실행 중인 컨테이너 중지
docker stop pgvector

## 컨테이너 제거
docker rm pgvector

## 기존 볼륨 제거
docker volume rm pgvector-volume

# 2. ## 컨테이너 생성 5433 포트로 새로 실행
docker run `
--name pgvector `
-d `
-p 5433:5432 `
-e POSTGRES_USER=postgres `
-e POSTGRES_PASSWORD=postgres `
-e TZ=Asia/Seoul `
-v pgvector-volume:/var/lib/postgresql/data `
pgvector/pgvector:pg17 `
-c max_connections=500

```

 

 

2) Docker 포트 포워딩 변경 (5432 → 5433) 기본 포트인 5432가 혹시 문제를 일으키나 싶어 외부 노출 포트를 5433으로 변경하여 컨테이너를 띄워봤습니다.

  • -p 5433:5432 설정 적용

3) pgAdmin 접속 정보 수정 포트를 바꿨으니 pgAdmin의 Connection 설정에서도 Port를 5433으로 변경하며 접속을 시도했습니다.

 

 

✅ <해결> 4) 백그라운드 로컬 서비스 중지 및 포트 정리

결정적인 원인: 알고 보니 내 컴퓨터 백그라운드에 로컬 설치판 PostgreSQL 16과 17 버전이 이미 각각의 포트(5432 등)에서 실행되고 있었습니다.

Docker에서 5432를 열려고 해도, 이미 내 PC의 운영체제가 직접 실행 중인 PostgreSQL 서비스가 포트의 우선권을 꽉 잡고 있었던 것이죠. 이 때문에 pgAdmin은 Docker 컨테이너가 아닌 로컬의 PostgreSQL 서버에 접속하려다 비밀번호 오류를 냈던 것입니다.

해결 방법:

  1. Windows 서비스(services.msc) 창을 엽니다.
  2. 실행 중인 postgresql-x64-16(port 5432), postgresql-x64-17(port 5433) 서비스를 찾아 [중지] 시킵니다.
  3. Docker 컨테이너를 다시 실행하니 드디어 정상적으로 연결 성공!

 

💬 마치며

아.. 진짜 힘들었다... 😅 Docker 설정(컨테이너, 이미지, 볼륨)과 비밀번호 공백 추가(shell script 공백때문에..), port 번호만 계속 만졌는데, 범인은 등 잔 밑(내 로컬 서비스)에 있었네요. 혹시 저처럼 pgvector나 postgres를 Docker로 띄우는데 접속 오류가 난다면 꼭 로컬에 설치된 DB 서비스가 돌고 있지는 않은지 먼저 확인해 보세요!