PostgreSQL 사용법 정리

의혁·2025년 1월 27일

[DB] 데이터베이스

목록 보기
6/6
post-thumbnail

💡 이번 프로젝트에서 PostgreSQL을 처음 사용해보기 때문에 사용해보면서 정리해보고자 한다.

1. PostgreSQL설치 & 설정

postgreSQL을 다운받았고, Pgadmin4를 사용 GUI 환경에서 이미 user는 만들었기 때문다.
따라서 프로젝트에 사용할 데이터베이스를 만들고 프로젝트에 적용시켜보는 과정은 CLI로 진행하고, 결과를 GUI로 조회해보았다.

# postgresql 설치
brew install postgresql@16
  • 이번 프로젝트에서는 postgresql의 16버전을 사용하기 때문에 설치할 때 부터 postgresql@16으로 설치하였다.

# 설정 파일 수정
vi ~/.zshrc

# 수정한 설정 파일 적용
source ~/.zshrc

  • #postgresql로 주석처리 된 부분을 확인해보면 zshrc 파일을 열어서 postgresql 경로를 등록해주었다.

# postgresql 실행
brew services start postgresql@16

# 상태 확인
brew services list

  • 설치한 Postgresql의 환경설정 세팅을 전부 마치고, 작동중인 service를 살펴보았는데 문제가 발생하였다.
  • postgresql이 설치는 되어있지만 status가 256 error를 발생시키고, Running(실행)이 되지 않는 문제가 발생하였다.

# port 5432를 사용중인 id 찾아보기
lsof -i :5432

# Pgadmin4를 종료한 후 확인
lsof -i :5432

  • 음... ㅋㅋㅋㅋ 부끄럽지만, 오류의 원인은 바로 prot 5432로 설정된 pgadmin4(GUI환경)이 실행되고 있어, 5432 port를 점유하고 있어서였다....ㅎ
  • pgadmin4를 종료하고 다시 port 5432를 점유하는 Id를 찾아보니 나오지 않았다..ㅋㅋㅋㅋㅋ

  • 위의 문제를 해결하고 bockerl 계정을 통해서 접속되고, version도 다운받았던 postgresql@16 으로 조회되는 것을 볼 수 있었다.

2. Database 생성 및 sample 테이블 완성

  • 기존 GUI 환경(pgamdin4)에서 생성한 bockerl라는 계정을 사용하여 로그인하였고, 프로젝트에 사용할 "snail"이라는 데이터 베이스를 생성하였다.

  • 데이터 베이스를 생성하고 나서 bockerl 계정에 권한을 등록해주었다.
  • MariaDB처럼 권한을 등록하고, "flush privileges"를 진행해주려 하였지만, 검색 결과 postgreSQL에서는 필요없었다.

  • bockerl 계정으로 snail로 접속하였고, test를 해볼 table을 새로 생성하였다.
  • "\dt"를 통해서 현재 DB의 table을 조회해본 결과, 만들었던 test table이 조회되었다.

  • pg_tables는 PostgreSQL 시스템 카탈로그 테이블 중 하나로, "SELECT * FROM pg_tables"를 통해서 해당 데이터 베이스의 모든 테이블 목록을 조회한다.
  • 생성된 test 테이블에 데이터를 INSERT 하고, 조회해본 결과 잘 조회되는 것을 확인할 수 있었다.
  • 기존 문법들은 대부분 MariaDB에서 사용했던 문법과 동일한 거 같다.

  • 실제로 pgadmin4라는 GUI환경에서 조회해본 결과, snailDB 도 잘 만들어졌고, test 테이블도 잘 생성된 것을 확인할 수 있다.

참고블로그
postgresql 설치 및 DB생성: https://chb2005.tistory.com/192
발생 오류 참고: https://velog.io/@subbni/Error-%EB%A7%A5%EB%B6%81-%EA%BB%90%EB%8B%A4-%EC%BC%B0%EB%8D%94%EB%8B%88-postgreSQL-%EC%8B%A4%ED%96%89%EC%9D%B4-%EC%95%88-%EB%90%98%EB%8A%94%EB%8D%B0%EC%9A%94

profile
매일매일 차근차근 나아가보는 개발일기

0개의 댓글