CodeGym /행동 /SQL SELF /PostgreSQL 설치 및 설정할 때 흔히 하는 실수들

PostgreSQL 설치 및 설정할 때 흔히 하는 실수들

SQL SELF
레벨 4 , 레슨 1
사용 가능

1. PostgreSQL의 기본 구성요소

인스톨러가 설치해주는 건 딱 세 가지야: 서버 하나랑 클라이언트 두 개. 지금부터 간단하게 설명해줄게.

서버 postgres

이게 바로 PostgreSQL의 심장이야. 서버가 하는 일은:

  • 클라이언트 쿼리 처리하기.
  • 데이터 관리: 읽기, 쓰기, 업데이트.
  • 데이터 보안이랑 무결성 보장하기.

PostgreSQL 서버를 실행하면, 이제 클라이언트에서 쿼리 받을 준비가 된 거야.

클라이언트들

클라이언트는 서버에 접속해서 SQL 쿼리 날리는 프로그램들이야. PostgreSQL에는 유명한 클라이언트들이 몇 개 있어:

  • psql 프로그램: PostgreSQL용 커맨드라인 툴. 터미널 좋아하는 올드스쿨 개발자나 매니아들한테 딱이야.
  • pgAdmin 프로그램: 서버 관리용 GUI. 데이터베이스 작업할 때 스위스 아미 나이프 같은 존재 — 예쁘고 편해.
  • 기타 클라이언트: 사실 다른 언어에서 PostgreSQL 쓸 수 있게 해주는 라이브러리나 툴도 엄청 많아. 예를 들면 Python용 psycopg3나 Ruby용 pg 같은 거.

이 구성요소들이 어떻게 같이 돌아가냐면? 사용자가 클라이언트(psql/pgAdmin)로 쿼리 날림 → 클라이언트가 서버 postgres에 쿼리 전달 → 서버가 파일시스템이랑 메모리에서 데이터 처리 → 결과를 클라이언트로 돌려줌.

2. 콘솔로 데이터베이스 접속하기

기억나지? psql은 PostgreSQL을 커맨드라인에서 다루는 프로그램이야. 뭔가 빨리 확인하거나 쿼리 실행하거나 데이터베이스 구조 살펴보고 싶을 때 완전 좋아.

예시: psql 사용하기


# 서버에 접속하기
psql -U postgres

잘 연결되면 이런 화면이 나올 거야:


psql (17.5)
Type "help" for help.

postgres=#

축하해, 이제 psql 커맨드라인 안에 들어온 거야!

연결되면 이런 명령어들 쓸 수 있어:


-- 데이터베이스 만들기
CREATE DATABASE test_db;

-- 데이터베이스 목록 보기
\l

-- 특정 데이터베이스로 전환
\c test_db

-- 세션 종료
\q

직접 다루는 거 좋아하는 사람한테는 진짜 꿀툴이야.

3. 설치할 때 흔히 생기는 문제들

근데 뭔가 잘 안 됐다면? 데이터베이스 목록도 못 보고, 로그인도 안 된다면? 인스톨러는 끝났는데 그게 끝이야 😡 에러, 콘솔에서 욕먹고, postgres는 실행도 안 되고, psql은 너를 모른 척해. 익숙하지? 축하해 — 이게 바로 “난 다 제대로 했는데 아무것도 안 돼” 단계야. 😅

초보자들이 꼭 밟는 함정 몇 개만 쭉 짚어볼게. 차분하게, 따뜻한 차 한 잔이랑 “에러 로그 다 이겨낸다”는 마음가짐만 있으면 돼. 오늘은 PostgreSQL이 “멘토 컴퓨터에서만 되는” 증상 싹 없애보자! 🛠️🐘

문제 1. 포트 충돌

아마 제일 흔한 케이스일걸. PostgreSQL은 기본적으로 5432 포트를 써. 근데 이 포트를 이미 다른 앱이 쓰고 있으면, 설치는 잘 돼도 서버가 안 켜져.

문제 확인법?

PostgreSQL 서버 실행할 때 안 돌아가거나 이런 메시지 뜨면:


could not bind IPv4 socket: Address already in use

해결법:

5432 포트를 누가 쓰고 있는지 확인해봐. Linux에서는 이렇게:


sudo netstat -tuln | grep 5432

Windows에서는 콘솔에서 이렇게:


netstat -ano | find "5432"

진짜 포트가 점유 중이면, PostgreSQL 포트를 바꿔도 돼. postgresql.conf 파일(이건 PostgreSQL 데이터 폴더에 있어)을 열고 이런 줄 찾아:


#port = 5432

포트를 다른 걸로 바꿔. 예를 들어:


port = 5433

바꾼 다음엔 서버 재시작 꼭 해줘.

문제 2. 권한 부족

Windows에서는, PostgreSQL 인스톨러가 제대로 설치를 못 끝내는 경우가 있어. 이건 현재 유저가 권한이 부족해서 그래.

문제 확인법?

인스톨러가 멈추거나 권한 없다는 메시지 뜸.

해결법:

설치할 때 관리자 권한으로 실행해. 인스톨러에 우클릭해서 “관리자 권한으로 실행” 선택하면 돼.

문제 3. 환경 변수 문제

가끔 PostgreSQL 설치 후에 psql 명령어가 커맨드라인에서 안 먹힐 때가 있어.

문제 확인법?

psql 실행하려고 하면 이런 메시지 나옴:


'psql' is not recognized as an internal or external command

해결법:

이 에러는 PostgreSQL 바이너리 폴더(예: C:\Program Files\PostgreSQL\17\bin) 경로가 환경 변수에 안 들어가서 그래.

Windows에서 고치려면:

  1. "시스템 속성" → "고급" → "환경 변수" 들어가.
  2. "시스템 변수"에서 Path 찾아서 수정해.
  3. PostgreSQL bin 폴더 경로 추가해. 예시:
    
    C:\Program Files\PostgreSQL\17\bin
            
  4. 그 다음 커맨드라인 다시 켜.

4. 서버 접속할 때 에러

가끔은 다 잘 돼: PostgreSQL 켜고, psql 열면 데이터베이스 접속도 문제없지. 근데 꼭 그렇진 않아. 갑자기 에러! 뭔가 막혀. 비번도 맞는 거 같은데, 서버도 켜져 있는데... 근데 psql이 화내면서 에러 뱉어.

당황하지 마 — 이런 에러는 누구나 겪어. 아래에 자주 나오는 접속 문제랑 빠른 해결법 정리해봤어.

문제 1. postgres 유저 비밀번호 틀림

PostgreSQL 설치할 때 DB 슈퍼유저 postgres 비번을 정하지. 근데 비번 까먹거나 잘못 입력하면 서버에 접속 못 해.

문제 확인법?

접속 명령어 입력할 때:


psql -U postgres

이런 에러가 나와:


password authentication failed for user "postgres"

해결법:

postgres 비번 까먹었으면 이렇게 초기화할 수 있어:

  1. pg_hba.conf 파일을 열어. 이건 PostgreSQL 데이터 폴더 C:\Program Files\PostgreSQL\17\data에 있어
  2. 이런 줄을 찾아:
    
    host    all             all             127.0.0.1/32            md5
            
    그리고 이렇게 바꿔:
    
    host    all             all             127.0.0.1/32            trust
            

    이러면 임시로 비번 체크 꺼짐.

  3. PostgreSQL 서버 재시작해.
  4. 비번 없이 DB 접속:
    
    psql -U postgres
            
  5. 비번 바꿔:
    
    ALTER ROLE postgres PASSWORD 'new_password';
            
  6. pg_hba.conf 원래대로 돌리고 서버 재시작해.

문제 2. 호스트나 포트 잘못 입력

psql 클라이언트가 서버에 접속 못 하면, 호스트랑 포트 설정이 맞는지 꼭 확인해.

문제 확인법?

접속 에러는 이렇게 나올 수 있어:


could not connect to server: Connection refused
    Is the server running on host "127.0.0.1" and accepting
    TCP/IP connections on port 5432?

해결법:

PostgreSQL 서버가 켜져 있는지 확인해:


systemctl status postgresql

(Linux) 또는 Windows에서는 "서비스"(Ctrl+Shift+Esc)에서 확인해.

서버가 켜져 있으면, pg_hba.conf 설정도 확인해. 로컬 호스트(127.0.0.1)랑 네 IP에 대한 접속 줄이 제대로 있는지 봐. 예시:


host    all             all             127.0.0.1/32            md5
host    all             all             192.168.1.100/32        md5

5. 문제 해결 꿀팁 모음

  • PostgreSQL 로그 활용하기
    로그는 진짜 친구야. PostgreSQL 데이터 폴더(예: /var/log/postgresql/ in Linux)에 있어. 뭔가 잘 안 되면, 로그부터 꼭 확인해봐.
  • 공식 문서 참고하기
    PostgreSQL은 공식 문서가 진짜 잘 돼 있어. 에러 나면 공식 문서에 답이 있을 확률 높아: https://www.postgresql.org/docs/.
  • 커뮤니티 활용하기
    막혔으면 Stack Overflow, ChatGPT, PostgreSQL 포럼 찾아봐. 이미 누가 똑같은 문제 겪었을 확률 높아.

P.S.

중요! 그래도 아무것도 안 된다면 — 우리 지원팀에 문의해줘: 네 문제 같이 해결하고, 이 글도 업데이트할게!

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION