만쥬의 개발일기
article thumbnail

1. Ubuntu에 설치할 수 있는 PostgreSQL 버전 확인하기

<code />
apt show postgresql

 

위 명령어를 통해 설치할 수 있는 postgreSQL 버전을 확인할 수 있다.

현재 테스트 환경은 ubuntu18.04이고, 설치 가능한 버전은 10버전이다.

<code />
$ sudo apt install postgresql postgresql-contrib

위 명령어를 통해 바로 설치가 가능하다.

2. 설치 후 버전 확인

설치 후 버전 확인 방법은 여러가지가 있다.

<code />
psql --version

가장 간단하게 위 명령어로 확인이 가능하고,

 

<code />
pg_config --version

위 명령어로도 확인이 가능하다.

다만 해당 명령어 사용시 다음과 같은 에러메세지가 날 때가 있다.

"You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application."

이 때에는 sudo apt-get update 이후,

<code />
sudo apt-get install libpq-dev

위 명령어를 입력해주자.

3. postgreSQL 데이터베이스 접속하기

가장 처음엔 다음 명령어로 쉘에 접속해주자.

<code />
sudo -i -u postgres

이 명령어를 사용하면 슈퍼 유저 권한으로 쉘에 접속하고, postgres 사용자로 로그인한 것과 유사한 환경을 제공한다.

다음으로 psql 명령어로 DB에 접속한다.

<code />
psql

이 때, 다음과 같은 오류가 날 수 있다.

처음엔 port가 mySQL과 겹치는 줄 알았으나, 알고보니 postgreSQL의 서버를 켜주지 않아서 발생한 것이었다… 먼저 서버를 켜주자

<code />
sudo service postgresql start

참고로 mysql의 기본 포트는 3306이고, postgreSQL의 기본 포트는 5432이다.

4. 유저 생성하기

다음 명령어로 유저를 생성하고, \du 명령을 통해 생성된 계정 목록을 확인한다.

<code />
create user kdh password '{password}' superuser;

5. 데이터베이스 생성하기

다음 명령어로 데이터베이스를 생성하고, \l 명령을 통해 생성된 데이터베이스 목록을 확인한다.

위 예시에서 template0template1은 PostgreSQL 설치 시에 미리 생성된 템플릿이다.

 

template0은 변경이 불가능하고, 사용자가 직접 수정하거나 데이터를 추가할 수 없다.

새로운 데이터베이스를 생성할 때 해당 템플릿을 사용하면 완전히 깨끗하고 기본 설정이 적용된 데이터베이스가 생성된다.

 

template1은 사용자가 직접 수정하거나 템플릿을 수정할 수 있다.

새로운 데이터베이스를 생성할 때 fork하듯이 기본적으로 template1을 복사하여 생성한다.

6. 생성한 유저로 데이터베이스 접속하기

다음 명령어로 생성한 데이터베이스에 접속할 수 있다.

단, 해당 유저가 그 데이터베이스의 owner여야 한다.

<code />
psql -U {유저명} -d {데이터베이스명}

 

7. 테이블 만들기 예시

간단한 예시로 user 테이블을 만들어보자. 문법은 기존 sql문과 동일하고, 테이블 목록은 \\dt 명령어로 확인 가능하다.

<code />
CREATE TABLE users ( user_id SERIAL PRIMARY KEY, username VARCHAR(50) UNIQUE, email VARCHAR(100), created_at TIMESTAMP DEFAULT current_timestamp );

8. 그 외 기본 명령어

8.1. DB 테이블 정보 출력

<shell />
\d {테이블명}

8.2. DB 출력 방식 변경

<shell />
-x
profile

만쥬의 개발일기

@KangManJoo

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!