PostgreSql 설치하기

설치

페키지 목록을 최신 상태로 유지합니다.

$ sudo apt update

설치하기

$ sudo apt-get install postgresql postgresql-contrib

postgresql 설치시 기본적으로 postgres 계정이 생성됩니다.

postgres 계정은 PostgreSql을 관리하기 위한 계정 입니다.

postgres 계정으로 변경합니다.

sudo -i -u postgres

DB 접속하기

psql 명령을 입력하여 DB에 접속해 봅니다.

postgres@test:~$ psql
psql (12.5 (Ubuntu 12.5-0ubuntu0.20.04.1))
Type "help" for help.

postgres=#

현재 설치된 버젼은 12.5 입니다.

또는 sudo 계정으로 postgreSql에 바로 접속을 할때에는 다음과 같이 입력합니다.

sudo -u postgres pgsql

test 사용자 계정에서 다음과 같이 postgreSql로 바로 진입하는 것을 볼 수 있다.

test@test:~$ sudo -u postgres psql
psql (12.5 (Ubuntu 12.5-0ubuntu0.20.04.1))
Type "help" for help.

종료하기

postgreSql에서 종료하고 나갈때는 \q를 입력합니다.

postgres=# \q
postgres@test:~$

사용자 추가

새로운 사용자를 추가할때

test@test:~$ sudo -i -u postgres
postgres@test:~$ createuser --interactive
Enter name of role to add: jiny
Shall the new role be a superuser? (y/n) y

새로운 사용자를 추가할 때에는 createuser 명령을 사용합니다. 이때 옵션 --interactive을 같이 입력합니다.

새로운 사용자 명을 입력 받고, 이 유저가 superuser 인지를 물어 봅니다.

createuser 명령에 대한 자세한 사용법은

man createuser

를 입력합니다.

DB 생성하기

새로운 db를 생성할때는 createdb 명령을 사용합니다.

postgres@test:~$ createdb jinyphp

리눅스 계정

postgreSql은 데이터베이스와 동일한 리눅스 계정이 필요합니다.

test@test:~$ sudo adduser jinyphp
Adding user `jinyphp' ...
Adding new group `jinyphp' (1001) ...
Adding new user `jinyphp' (1001) with group `jinyphp' ...
Creating home directory `/home/jinyphp' ...
Copying files from `/etc/skel' ...

즉, PostgreSQl 데이터베이스 명과 postgres 사용자명과 리눅스 계정이 동일하게 필요합니다.

이제 만들어진 계정으로 데이터베이스를 접속해 봅니다.


test@test:~$ sudo -u jinyphp psql -d jinyphp
psql (12.5 (Ubuntu 12.5-0ubuntu0.20.04.1))
Type "help" for help.

jinyphp=#

DB 접속정보를 확인합니다.

jinyphp=# \conninfo
You are connected to database "jinyphp" as user "jinyphp" via socket in "/var/run/postgresql" at port "5432".

테이블 확인 \d

타입이 table인 것만 확인하려면 \dt 명령으로 확인할 수 있다.

쿼리를 통한 사용자 계정 추가

postgres=# CREATE USER 아이디 WITH PASSWORD '비밀번호';

데이터베이스 생성

postgres=# CREATE DATABASE 데이터베이스명 OWNER 아이디;

스키마

postgres=# CREATE SCHEMA 스키마 AUTHORIZATION 아이디;

-- public 스키마가 아닌 별도의 스키마를 생성해서 사용하려면 search_path 를 잡아주는 것이 편하다.
-- search_path는 탐색할 스키마의 순서를 지정해주는 변수다.
-- show search_path;
postgres=# alter USER bcadmin set search_path = 'bcpaltform';
서브목차