저는 우분투 18.04를 사용하므로 이것을 기준으로 진행하겠습니다. 우분투에서는 기본적으로 postgresql이 설치되어 있습니다. 그러나 이 postgresql은 배포판 배포 시점의 버전이기 때문에 새 버전을 그냥 설치하려고 하면 충돌이 발생합니다. 설치 페이지의 우분투 버전에 명시된 다음 과정을 통해 postgresql 다른 버전을 설치할 수 있습니다.
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
# postgresql-[버전번호]를 통해 다른 버전을 설치할 수 있습니다.
# 버전이 명시되지 않으면 최신 버전이 설치됩니다.
sudo apt-get -y install postgresql
다음 명령어를 통해 PostgreSQL 쉘을 시작할 수 있습니다.
sudo -u postgres psql
기본적으로 peer인증을 사용하므로 sudo -u를 붙여줘야 합니다. 매번 이렇게 실행하는 것이 불편해서 인증방식을 바꾸려면 여기를 참조하세요
기본적으로 PostgreSQL에 postgres, template0과 template1의 데이터베이스가 생성되어 있습니다. 그리고 기본 super권한을 가진 postgres role이 생성되어 있습니다. psql 명령어에서 기본 user와 데이터베이스를 설정하지 않을 경우 쉘의 현재 유저 이름과 postgress 데이터베이스로 쉘이 실행됩니다. 원하는 user와 데이터베이스로 시작하려명 다음 명령어 중 하나를 이용하면 됩니다.
sudo -u [유저명] psql --dbname=[데이터베이스명]
psql --username=[유저명] --dbname=[데이터베이스명]
우선 기본적으로 super 권한을 가진 postgres를 사용하는 것은 좋지 않으므로 role을 생성해보겠습니다. 두 가지 방법이 있습니다.
PostgreSQL 쉘을 실행한 후 다음 명령어를 실행하면 됩니다.
CREATE ROLE [Role 이름] 권한;
부여할 수 있는 권한은 다음과 같습니다.
LOGIN
SUPERUSER
CREATEDB
CREATEROLE
REPLICATION
PASSWORD '[사용할 비밀번호]'
다음 명령어를 이용하면 됩니다.
sudo -u postgres createuser [Role 이름]
\du
현재 ROLE 목록을 볼 수 있습니다.
\l
데이터베이스 목록을 확인합니다.
\c [데이터베이스 이름]
현재 데이터베이스를 바꿉니다.
\q
쉘을 종료합니다.
\?
전체 명령어 목록을 확인합니다.
쿼리문을 작성할 때에는 끝에 ;를 꼭 붙여야 합니다.
https://qastack.kr/server/514329/installing-postgres-on-ubuntu-package-not-available
https://www.postgresql.org/download/linux/ubuntu/
https://big-blog.tistory.com/966
https://jinmay.github.io/2018/01/11/python/python-with-postgresql/
https://yeojin-dev.github.io/blog/postgresql-ubuntu/#fnref:1
https://c10106.tistory.com/3987