PostgreSQL9.6 설치(yum)
설치 가능한 패키지 확인
$ sudo yum list postgres*
패키지 설치
$ sudo yum install -y postgresql-server.x86_64 postgresql-contrib.x86_64 postgresql-devel.x86_64
$ sudo yum install -y postgresql96-server.x86_64 postgresql96-contrib.x86_64 postgresql96-devel.x86_64
설치 확인
$ sudo yum list installed | grep postgres
postgresql.x86_64 9.6.8-1.amzn2.0.2 @amzn2extra-postgresql9.6
postgresql-contrib.x86_64 9.6.8-1.amzn2.0.2 @amzn2extra-postgresql9.6
postgresql-devel.x86_64 9.6.8-1.amzn2.0.2 @amzn2extra-postgresql9.6
postgresql-libs.x86_64 9.6.8-1.amzn2.0.2 @amzn2extra-postgresql9.6
postgresql-server.x86_64 9.6.8-1.amzn2.0.2 @amzn2extra-postgresql9.6
Data Directory
/var/lib/pgsql96
service 확인
$ cd /etc/init.d
-rwxr-xr-x 1 root root 7949 12월 5 2018 postgresql96
초기화
$ sudo postgresql-setup initdb
# service 확인한 정보로 실행
$ sudo service postgresql96 initdb
시작
$ sudo systemctl start postgresql
$ sudo service postgresql96 start
부팅시 자동 시작 등록
$ sudo chkconfig postgresql on
$ sudo chkconfig postgresql96 on
이미 생성되어 있는 postgres 계정에 패스워드 추가(password: postgres)
$ sudo passwd postgres
postgres 계정으로 접속
$ su - postgres
postgres의 쉘 커맨드 실행
-bash-4.2$ psql postgres
유저생성, DB생성, DB권한설정
(예제)
postgres=# CREATE USER sonar WITH ENCRYPTED PASSWORD 'sonar';
CREATE ROLE
postgres=# CREATE DATABASE sonar OWNER sonar;
CREATE DATABASE
postgres=# ALTER ROLE sonar WITH createdb;
ALTER ROLE
postgres=# GRANT ALL PRIVILEGES ON DATABASE sonar TO sonar;
GRANT
# 쉘 커맨드를 종료합니다.
postgres-# \q
# 원래 계정으로 돌아갑니다.
-bash-4.2$ exit
# 재시작
$ sudo systemctl restart postgresql
처음 posrgresql 구성간 아래와 같은 에러 메시지가 나올 경우
오류
....
psycopg2.OperationalError: FATAL: Ident authentication failed for user "test"
....
psql: FATAL: Peer authentication failed for user "test"
방안
[root] # vi /var/lib/pgsql/10/data/pg_hba.conf
위 경로 들어가 상황에 맞게 METHOD 부분의 ident를 MD5 or trust로 변경해 준다.
# IPv4 local connections:
host all all 127.0.0.1/32 md5