반응형
해당 글에서는 PostgreSQL을 로컬 디비로 구성하는 방법에 대해서 공유합니다.
1) PostgreSQL을 설치합니다.
💡 PostgreSQL의 버전을 확인하고 설치가 안 되어 있다면 설치를 하고 서비스를 수행합니다.
# postgreSQL 버전을 확인합니다.
$ postgres --version
# 설치가 가능한 버전을 확인합니다.
$ brew search postgresql
# 설치가 안 되었다면 설치를 합니다.
$ brew install postgresql
# PostgreSQL 서비스를 시작합니다.
$ brew services start postgresql
💡 [참고] 일반 brew install postges를 이용하여 수행하는것이 아닌 brew install postgresql@xx 특정 버전을 설치하는 경우는 아래의 설정을 추가해야합니다.
💡 예시로 postgresql@16 버전을 설치하였습니다.
# postgresql 16 버전 설치
$ brew install postgresql@16
💡 ZShell을 수행합니다.
# ZShell 파일 수정
$ vi ~/.zshrc
💡ZShell 파일 내의 아래의 내용을 추가하고 저장하고 해당 파일을 나갑니다.
# postgresql
export PATH="/opt/homebrew/opt/postgresql@16/bin:$PATH"
💡 ZShell을 변경 사항을 반영합니다.
# ZShell 변경사항을 반영해줍니다.
$ source ~/.zshrc
💡 Homebrew 실행 상태를 확인하고, 실행되지 않았다면 실행해줍니다.
# Homebrew 서비스들의 상태를 확인합니다
$ brew services list
# Homebrew 서비스 중 postgresql을 실행해줍니다
$ brew services start postgresql@16
# Homebrew 서비스들의 상태를 확인합니다
$ brew services list
💡 [참고] 설치가 잘 되었음을 확인하였습니다.
# PostgreSQL의 16버전 설치를 확인합니다.
$ postgres --version
2) PostgreSQL에 접속해봅니다.
💡 서비스를 시작시키면 PostgreSQL을 Terminal에서 사용 가능합니다. PosgreSQL을 접속하여 사용자를 확인합니다.
# PostgreSQL 접속합니다.
$ psql postgres
# PostgreSQL의 사용자 확인합니다.
$ \du
3) 데이터베이스, 사용자 생성 및 권한 부여
💡 데이터베이스, 사용자 생성 및 권한 부여
- testdb라는 데이터베이스를 생성하고, localmaster라는 사용자를 생성합니다.
- 해당 사용자에게는 createdb라는 데이터베이스 생성 권한을 부여하고, 테이블 조작(DDL), 테이블 데이터 조작(DML)을 할수 있는 모든 권한을 부여합니다.
# 루트 권한으로 접근합니다.
$ psql postgres
# 데이터베이스를 생성합니다.
$ create database testdb;
# 데이터베이스 생성을 확인합니다.
$ \l
# or
$ \list
# 사용자를 비밀번호와 함께 생성합니다.
$ create user localmaster with encrypted password 'qwer1234';
# 특정 사용자에게 데이터베이스 생성에 대한 권한을 부여합니다.
$ alter user localmaster WITH createdb;
# 사용자의 생성 및 권한 확인
$ \du
# 데이터베이스에 대한 모든 권한을 부여합니다.
$ GRANT ALL PRIVILEGES ON DATABASE testdb TO localmaster;
4) 데이터베이스 내의 스키마 구성 및 권한 부여
💡 데이터베이스 내의 스키마 구성 및 권한 부여
- 생성한 데이터베이스에 접속하여 test_scma라는 스키마를 생성합니다.
- 스키마에 대해서 default 스키마로 지정을 하고 사용자에게 스키마에 대한 권한을 부여합니다.
# 데이터베이스에 접속합니다
$ \\connect testdb;
# 스키마를 생성합니다.
$ CREATE SCHEMA test_scma;
# 생성된 스키마를 확인합니다.
$ \\dn
# default 스키마를 변경합니다
$ ALTER DATABASE testdb SET search_path TO test_scma;
# default 스키마를 확인합니다.
$ SHOW search_path;
# 사용자에게 스키마에 대한 권한 부여
$ GRANT USAGE ON SCHEMA test_scma TO localmaster;
# 스키마에 대한 권한을 확인합니다.
$ \\dn+
# 사용자에게 스키마에 대한 테이블에 대해 모든 테이블에 모든 권한 부여
$ GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA test_scma TO localmaster;
5) SQL IDE와 연결을 합니다.
💡 SQL IDE를 JetBrain의 DataGrid를 이용하여 구성하였습니다.
1. PostgreSQL을 구성합니다.
2. 설정한 데이터 환경으로 구성하면 연결이 완료됩니다.
3. 연결이 완료되었습니다.
💡 연결이 완료되었습니다.
- 생성한 testdb라는 데이터베이스와 test_scma라는 스키마가 생성됨을 확인하였습니다.
💡 [참고] deifault Scema가 적용이 안되었는데?
- IDE 툴을 종료하고 재시작하여 public에 대해 체크해제를 하고 test_scma를 선택하면 default schema로 변경됨을 확인하였습니다.
💡 [참고] API 서버내에서도 연결이 잘 되었음을 확인하였습니다,
99) 참고
1. 로컬 데이터베이스 수행 에러
💡 MacOS M1내에서 아래와 같은 문제가 발생하였습니다. 이를 해결할 수 있는 방법을 공유합니다.
connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory
# M1 pid 삭제
$ rm /opt/homebrew/var/postgres/postmaster.pid
# postgres 서버를 재실행하면
brew services restart postgresql
2. homebrew PostgreSQL 완전 삭제 방법
# 실행중인 postgresql 백그라운드 서비스 중지
$ brew services stop postgresql@xx
# M1 ~ M3 homebrew 위치 접근
$ cd /opt/homebrew/var
$ M1 ~ M3 homebrew postgresql 삭제
$ rm -r postgresql@xxx
오늘도 감사합니다😀
반응형
'DB > 환경설정' 카테고리의 다른 글
[DB/MySQL] MySQL 8.0 초기 환경 세팅 및 최초 구성 방법 : MacOS (2) | 2024.03.29 |
---|---|
[DB] Redis(Remote Dictionary Server) 이해하기 -2 : MacOS 로컬 환경 구성 및 명령어 (2) | 2024.03.16 |
[DB/Postgres] 저장 프로시저(Stored Procedure)로 Dummy 데이터 구성 방법 (1) | 2024.01.23 |