CentOS 7
Sponsored Link

PostgreSQL 9.6 : インストール2017/10/31

 
CentOS 7 標準の PostgreSQL のバージョンは 9.2系ですが、9.6系を RPM パッケージでインストールします。
[1] CentOS SCLo Software Collections からインストール可能です。
なお、デフォルトバージョンの 9.2系がインストールされた状態でも、Software Collections パッケージは別パスにインスールされるため、複数バージョンの共存が可能となっています。
# SCLoからインストール

[root@www ~]#
yum --enablerepo=centos-sclo-rh -y install rh-postgresql96-postgresql-server
[2] Software Collections パッケージは /opt 配下にインストールされます。
環境変数を読み込んで利用するには以下のように実行します。
# 環境変数を読み込む

[root@www ~]#
scl enable rh-postgresql96 bash
[root@www ~]#
postgres -V

postgres (PostgreSQL) 9.6.5
[root@www ~]#
which postgres

/opt/rh/rh-postgresql96/root/usr/bin/postgres
[3] ログイン時に自動的に有効にするには以下のように設定します。
[root@www ~]#
vi /etc/profile.d/rh-postgresql96.sh
# 以下の内容で新規作成

#!/bin/bash

source /opt/rh/rh-postgresql96/enable
export X_SCLS="`scl enable rh-postgresql96 'echo $X_SCLS'`"
[4] PostgreSQL 9.6 を有効にして、管理者ユーザーのパスワード設定、ユーザー登録、データベース作成を実施します。
[root@www ~]#
postgresql-setup --initdb --unit rh-postgresql96-postgresql

* Initializing database in '/var/opt/rh/rh-postgresql96/lib/pgsql/data'
* Initialized, logs are in /var/lib/pgsql/initdb_rh-postgresql96-postgresql.log
[root@www ~]#
vi /var/opt/rh/rh-postgresql96/lib/pgsql/data/postgresql.conf
# 59行目:他ホストからのアクセスも受け付ける場合はコメント解除して変更

listen_addresses = '
*
'
# 433行目:ログ形式を変更する場合はコメント解除して追記 (以下は [日時 ユーザー DB ~] 形式)

log_line_prefix = '
%t %u %d
'
[root@www ~]#
systemctl start rh-postgresql96-postgresql

[root@www ~]#
systemctl enable rh-postgresql96-postgresql

[5] PostgreSQL を他ホストからも利用する場合 且つ Firewalld を有効にしている場合は、PostgreSQL サービスの許可が必要です。
[root@www ~]#
firewall-cmd --add-service=postgresql --permanent

success
[root@www ~]#
firewall-cmd --reload

success
[6] PostgreSQL 管理者ユーザーのパスワード設定、ユーザー登録、データベース作成を実施します。
# パスワード設定

[root@www ~]#
su - postgres

-bash-4.2$
psql -c "alter user postgres with password 'password'"

ALTER ROLE
# DBユーザー [cent] を登録

-bash-4.2$
createuser cent
# テストデータベース作成 (オーナーは上記ユーザー)

-bash-4.2$
createdb testdb -O cent
[7] DB 登録したユーザーでログインし、データベース操作のテストをします。
# 確認

[cent@www ~]$
psql -l

                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres   +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres   +
           |          |          |             |             | postgres=CTc/postgres
 testdb    | cent     | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
(4 rows)

# テストDBに接続

[cent@www ~]$
psql testdb

psql (9.6.5) Type "help" for help.
# パスワード設定

testdb=#
alter user cent with password 'password';

ALTER ROLE
# テストテーブル作成

testdb=#
create table testTable ( no int,name text );

CREATE TABLE
# テストデータ挿入

testdb=#
insert into testTable (no,name) values (1,'cent');

INSERT 0 1
# 確認

testdb=#
select * from testTable;
 no | name
----+------
  1 | cent
(1 row)
# テストテーブル削除

testdb=#
drop table testTable;

DROP TABLE
# 終了

testdb=#
\q
# テストDB削除

[cent@www ~]$
dropdb testdb
関連コンテンツ