PostgreSQL 이란 ?
PostgreSQL 설치하기
1. 공식 다운로드 페이지 접속해서 다운로드
공식 다운로드 페이지 링크 : https://www.postgresql.org/
Download 버튼을 클릭하여 OS 선택 페이지로 이동
나는 Windows에 설치할 것이기 때문에 Windows를 클릭했다.
그럼 다음 이미지와 같은 페이지를 볼 수 있으며, 본인 OS Version 맞는 PostgreSQL Version을 확인하고
zip archive 버튼을 눌러서 버전 별 zip file 다운로드 페이지로 이동한다.
이후 확인한 버전에 맞는 PostgreSQL zip file을 다운로드한다.
그럼 다음과 같은 파일이 다운로드 된다.
2. 다운로드한 postgresql 설치파일 실행
처음 설치할때는 PostgreSQL을 설치할 경로가 나온다.
보통 C:\Program Files\PostgreSQL\16 와 같은 경로가 기본경로로 잡히는데, 원하는 경로로 새로 지정해도 무방하다.
그리고 다음 화면이 나온다.
다 체크해주고 넘어가자.
이후 Data의 경로를 설정하고 다음화면이 나온다.
Superuser(시스템 관리 권한이 있는 유저)의 비밀번호를 설정한다. 잘 기억해두도록 하자.
실수로 잊었을 경우에도 초기화 할 수는 있다.
이후 Locale 은 Korea로 설정하고 포트는 PostgreSQL의 기본포트인 5432로 둔다.
(MySQL 기본포트 3306 처럼 PostgreSQL의 기본포트는 5432)
기본설정으로 쭉쭉 Next를 누르면 설치가 완료된다.
그럼 설치가 완료됬으니 실행을 해보자.
3. psql을 통해 설치 확인
설치가 정상적으로 완료됬다면 window 키를 누르고 검색창에 psql을 입력하자.
psql은 PostgreSQL의 명령어 쉘이다.
실행하면 인증 정보를 묻는데, 기본값으로 enter enter 쭉쭉 친다.
사용자의 암호를 입력하라는 메세지가 나오면 아까 작성했던 Superuser의 비밀번호를 입력하고 enter 를 누른다.
정상적으로 입력됬다면 다음 화면이 나올 것이다.
정상적으로 설치하고 인증을 완료했다.
이제 DB를 생성해보자. 생성하는 방법은 MySQL Worckbench 같은 툴을 사용하는 방법과(pgAdmin, DBeaver 등이 있다)
psql을 사용하는 방법이 있는데,
여기서는 psql을 사용해서 DB를 생성해보겠다.
간단하다. 다음의 명령어를 입력한다.
CREATE DATABASE DB이름;
shopping이라는 이름의 DB가 생성되었다.
psql에서 백슬래쉬 소문자L명령어 입력으로 생성된 모든 테이블을 확인할 수 있다.
\l (백슬래쉬 소문자L)
잘 생성되었다! 이제 로컬환경에서 PostgreSQL Database를 사용할 수 있다.
* 비밀번호를 잊었을 경우
간단하게 비밀번호를 초기화하는 방법에 대해서만 설명한다.
pg_hba.conf 파일과 Client Authentication에 관한 자세한 내용은 다음 글을 참고바란다.
Client Authentication
비밀번호를 잊었을 경우에는 C:\Program Files\PostgreSQL\16\data 경로에 있는 pg_hba.conf를 수정해서 인증정보를 초기화 할 수 있다.
pg_hba.conf를 메모장으로 열고 아래부분으로 쭉쭉쭉 내려보면 다음 내용이 나온다.
여기서 METHOD는 인증방식을 정의하는 부분으로 기본적인 옵션은 다음과 같다.
- md5, password: 패스워드를 사용한 MD5 또는 평문 인증.
- scram-sha-256: SCRAM-SHA-256을 사용한 안전한 인증.
- 기타 인증 방식으로 reject, gss, sspi, ident, peer, pam, ldap, radius, cert가 있음.
- trust: 인증을 요구하지 않음.
따라서 scram-sha-256 또는 md5등으로 되어있을 텐데, 원래 상태를 캡처 또는 기억해두고 모두 trust로 바꾼다.
이후 psql을 실행하고 enter만 치면 인증이 완료된다.
인증이 되었으니, 이제 비밀번호를 설정한다.
ALTER USER postgres WITH PASSWORD '비밀번호';
이후 pg_hba.conf을 열어서 METHOD를 원래대로 바꿔준다.