윈도우 환경에서 DataGrip+PostgreSQL 세팅하기

인턴일지

목록 보기
6/7
post-thumbnail

1. DataGrip 설치하기

DataGrip은 개발자를 위한 데이터베이스 관리 환경으로 데이터베이스를 쿼리, 생성 및 관리하도록 설계되었습니다. 데이터베이스는 로컬, 서버 또는 클라우드에서 작동할 수 있습니다.

2. PostgreSQL 연결하기

[ PostgreSQL의 구조 ]

  • PostgreSQL은 클라이언트/서버 모델을 사용한다. 서버는 데이터베이스 파일들을 관리하며, 클라이언트 애플리케이션으로부터 들어오는 연결을 수용하고, 클라이언트를 대신하여 데이터베이스 액션을 수행한다. 서버는 다중 클라이언트 연결을 처리할 수 있는데, 서버는 클라이언트의 연결 요청이 오면 각 커넥션에 대해 새로운 프로세스를 fork한다. 그리고 클라이언트는 기존 서버와의 간섭 없이 새로 생성된 서버 프로세스와 통신하게 된다.
    출처: https://mangkyu.tistory.com/71 [MangKyu's Diary:티스토리]

그래서, 배포용 데이터베이스와 테스트용 데이터베이스를 분리도 가능함. => 이것도 현재 분리해주고 datagrip에서 postgreSQL 연결된 환경에서 test connection까지는 성공했음. 근데, pycharm 환경에서 테스트 환경 서버 연결 테스트 코드 실행 시 오류 발생해서 해결 필요함.
출처: https://velog.io/@moongyu1/PostgreSQL-local-database-with-DataGrip

  1. 버전은 16으로 설치해줬다. (해당 프로젝트에서 요구되는 버전이 이거였음.)
    https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
  1. DataGrip에서 Data Source를 "PostgreSQL"로 선택하고 포트번호(5432), DB_NAME, DB_USER(postgres), DB_PASSWORD 등등 .env 파일에 설정한 정보대로 입력해준다.

Test Connection 날려보면, 연결이 성공되어야한다.

하지만, PostgreSQL 서버가 실행 중이지 않다는 에러 발생

Connection to localhost:5432 refused. 
Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

3. PostgreSQL 연결 에러 해결하기

확인 사항:

✅ 1. PostgreSQL 서비스 실행 여부 확인

1-1) 작업 관리자에서 PostgreSQL Server가 실행 중인지 확인하기 아니면
1-2) services.msc에서 아래의 사진과 같이 실행 중인지 확인하기

1-3) cmd 창에서 아래의 명령어로 실행 확인하기

netstat -an | findstr 5432

=> 시도해보니 리스트에서 실행 중이지 아니였고 명령어 입력 시 출력되는 게 없었음

✅ 2. 직접 수동 실행 시도 (pg_ctl)

  1. PostgreSQL 설치 유무 확인
    where psql # PostgreSQL 설치 유무 확인
  • 예시 출력: C:\Program Files\PostgreSQL\16\bin\psql.exe

  1. pg_ctl 존재 여부 확인

    where pg_ctl 
  • 예시 출력: cd "C:\Program Files\PostgreSQL\16\data"

  1. 수동 실행
  • "data" 경로는 설치 시 자동으로 생성된 PostgreSQL 데이터 디렉토리이다.
    없을 경우 initdb 명령으로 새로 초기화해야 합니다.
    C:\Program Files\PostgreSQL\16\data>pg_ctl start -D "C:\Program Files\PostgreSQL\16\data"
  • 예시 출력:
    # 서비스 실행됨
    waiting for server to start.... done
    server started

✅ 3. 로그인 확인

  • PostgreSQL이 실행 중이라면 아래 명령어로 접속됩니다:psql -U postgres -> psql (16.9)
  • 정상 접속 시:postgres=#

✅ 4. 로그 및 포트 확인

  1. 로그 파일 확인: postgresql.conf 안에서 로그 경로를 확인하기

    C:\Program Files\PostgreSQL\16\data\pg_log\
    • 자주 나오는 오류 예시:
      FATAL: lock file "postmaster.pid" already exists
      → 비정상 종료로 남은 pid 파일. 삭제 후 재시작.
      could not bind to port 5432
      → 이미 다른 프로세스가 포트 점유
  2. 포트 확인 (충돌 여부 확인)

netstat -ano | findstr 5432
  • 아무것도 안 나오면 → 포트 안 열림 = PostgreSQL 서버가 아예 실행 안됨
  • 이미 다른 PID가 점유 중이라면 → 충돌. 해당 PID 확인 후 종료:
    tasklist | findstr <PID>
    taskkill /PID <PID> /F

✅ +) 서비스 자동 실행 설정

  • pg_ctl start로 수동 실행하기보다 자동 시작 설정을 해두기로...
pg_ctl register -N "PostgreSQL16" -D "C:\Program Files\PostgreSQL\16\data"
  • 이렇게 하면, service.msc에 등록되어서 부팅 시 자동 실행 가능함.
    혹은 PostgreSQL을 설치할 때 애초에 "서비스로 등록" 옵션을 체크하라는 지피티 센세의 말..

참고 자료:

https://www.commandprompt.com/education/how-to-start-stop-or-restart-the-postgresql-server/

profile
밝은 미래 FE 개발자의 기록

0개의 댓글