• 김영찬

PostgreSQL 설치하기

PostgreSQL DBMS를 Linux(CentOS)에 설치하고 기본 설정하는 방법에 대해서 설명합니다.

PostgreSQL 버전은 필요한 버전을 선택하고 그에 따라 아래 설치 내용을 변경하여 설치합니다. 이 문서는 PostgreSQL 13 버전을 기준으로 설명합니다.


// 기본 설치된 구 버전 PostgreSQL 삭제 : 기존에 설치된 오래된 버전을 삭제

  • yum removie postgresql



// PostgreSQL 다운로드 페이지에서 설치할 버전을 선택하고 생성된 yum 설치 script 확인(다음 단계 yum install 내용 복사)

  • https://www.postgresql.org/download/linux/redhat/

// Install the repository RPM: PostgreSQL 13 버전 설치 선택 및 script 복사 실행(윗 단계 선택한 버전에 따라 다른 내용)

  • sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

// # Install PostgreSQL 13

  • sudo yum install -y postgresql13-server

// Initialize the database and enable automatic start

  • sudo /usr/pgsql-13/bin/postgresql-13-setup initdb sudo systemctl enable postgresql-13 sudo systemctl start postgresql-13

  • sudo systemctl status postgresql-13

// PostgreSQL 방화벽 포트 설정(기본 포트 5432)

  • firewall-cmd --permanent --add-port=5432/tcp

또는 firewall-cmd --permanent --zone=public --add-port=5432/tcp

  • firewall-cmd --reload

// # postgres(수퍼유저) 계정의초기 암호 변경

  • sudo su - postgres

  • psql -c "alter user postgres with password 'StrongDBPassword'"

// 데이터베이스 초기화

  • postgresql-setup initdb // /etc/locale.conf에 LC_ALL 설정필요(Cloudera)

// 변경한 암호로 psql 접속 및 확인

  • psq -h localhost -p 5432 -U postgres // postgres 계정으로 DB 정보 확인

  • postgres=#\l // 데이터베이스 목록 확인 - postgres

// 다음 파일 설정 편집(접속 호스트 주소) - /var/lib/pqsql/13/data/postgresql.conf (line 59)

  • listen_addresses = '192.168.0.159' // or localhost psql -h에 들어갈 주소

또는 listen_addresses = '*' // 외부에서 접속 가능하도록 설정

  • port = 5432 // 필요한 경우 포트 번호 변경

  • max_connection = 100 // 최대 연결수 설정

// 다음 파일 설정 편집(접속 네트워크 설정) - /var/lib/pqsql/13/data/pg_hba.conf

  • host all all 192.168.0.0/24 md5 /192.168.0.x 망에서만 접근 허용

  • host all all 0.0.0.0/0 md5 // Accept from anywhere(권장안함)

  • host all all 127.0.0.1/32 md5 // Cloudera Setting

// Connect PostgreSQL-13 Server with psql

  • psql -h 192.168.0.159 -p 5432 -U postgres // listen address 설정에 따라 -h 옵션에 서버 IP 주소 설정 필요

  • psql -h localhost -p 5432 -U postgres // listen address 설정에 따라 -h 옵션에 서버 IP 주소 설정 필요

// postgres 계정(수퍼유저)에서 사용자 생성(hadoop)

  • sudo -u postgres psql // postgres 계정으로 psql 실행

  • 또는 아래 방식으로

su - postgres

psql

  • postgres=#\du // 현재 생성된 PostgresSQL 사용자 계정 조회 - postgres 계정이 유일

  • postgres=#create user hadoop password 'test00'; // 사용자(role) 생성

  • postgres=#alter role hadoop superuser createdb; // hadoop 계정에게 수퍼유저와 DB 생성 권한 부여

  • postgres=#du // 새로 hadoop 계정이 생성된 것을 확인

  • postgres=#drop user hadoop; // 사용자 계정 삭제

// PostgreSQL ALTER ROLE syntax


ALTER ROLE name [ [ WITH ] option [ ... ] ]

where option can be:

SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | CREATEUSER | NOCREATEUSER | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION | CONNECTION LIMIT connlimit | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password' | VALID UNTIL 'timestamp'

ALTER ROLE name RENAME TO new_name

ALTER ROLE { name | ALL } [ IN DATABASE database_name ] SET configuration_parameter { TO | = } { value | DEFAULT } ALTER ROLE { name | ALL } [ IN DATABASE database_name ] SET configuration_parameter FROM CURRENT ALTER ROLE { name | ALL } [ IN DATABASE database_name ] RESET configuration_parameter ALTER ROLE { name | ALL } [ IN DATABASE database_name ] RESET ALL

// Database 생성(postgres 계정 혹은 createdb 권한이 있는 사용자 계정)

  • create database hadooptest with owner hadoop; // hadoop 계정을 소유주로 hadooptest라는 데이터베이스 생성

  • drop database hadooptest; // hadooptest 데이터베이스 삭제

  • alter database movielens owner to hadoop; // movielens 데이터베이스의 소유자를 hadoop으로 변경

// 데이터베이스 액세스 권한 부여(참조 - 추가 strudy 필요)

- \l 목록에 표시되는 데이터베이스 권한을 설정

  • GRANT CONNECT ON DATABASE movielens TO movie;

  • GRANT USAGE ON SCHEMA public TO movie;

  • GRANT SELECT ON ALL TABLES IN SCHEMA public TO movie;

// 재시작 없이 수정사항 반영(reload)

  • pg_ctl reload

// 새로 생성한 계정과 데이터베이스에 접속

  • psql -h localhost -p 5432 -U hadoop -d hadooptest

  • psql -h localhost -p 5432 -U postgres -d hadooptest

조회수 1회댓글 0개

최근 게시물

전체 보기