備忘録 CentOS7 PostgreSQL構築

#はじめに
CentOS7でPostgresの環境を構築した際の備忘録です。以下、PostgreSQL構築手順とその内容を記載します。

#環境
```
CentOS7
PostgreSQL
VMware
```

#構築手順
##SSH SCP でファイル転送/権限付与
```
postgresql96-libs-9.6.11-1PGDG.rhel7.x86_64.rpm
postgresql96-9.6.11-1PGDG.rhel7.x86_64.rpm
postgresql96-server-9.6.11-1PGDG.rhel7.x86_64.rpm

chmod 777 postgresql96-libs-9.6.11-1PGDG.rhel7.x86_64.rpm
chmod 777 postgresql96-9.6.11-1PGDG.rhel7.x86_64.rpm
chmod 777 postgresql96-server-9.6.11-1PGDG.rhel7.x86_64.rpm
```

##インストール

```
rpm -ivh postgresql96-libs-9.6.11-1PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql96-9.6.11-1PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql96-server-9.6.11-1PGDG.rhel7.x86_64.rpm
```

##データベース初期化
```
/usr/pgsql-9.6/bin/postgresql96-setup initdb
```

##サービス起動/自動起動/自動起動確認
```
systemctl start postgresql-9.6.service
systemctl enable postgresql-9.6.service
systemctl is-enabled postgresql-9.6.service
```

##ファイル設定変更1

```
vi /var/lib/pgsql/9.6/data/postgresql.conf

修正前：
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)


修正後：
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'                  # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)                                        
```

##ファイル設定変更2
```
vi /var/lib/pgsql/9.6/data/pg_hba.conf

修正前：
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident


修正後：
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             0.0.0.0/0               md5
# IPv6 local connections:
host    all             all             ::1/128                 ident
```

##設定変更反映/確認
```
systemctl restart postgresql-9.6.service
systemctl is-enabled postgresql-9.6.service
```

##ユーザにパスワードを設定
```
su - postgres
psql
postgres=# ALTER ROLE postgres PASSWORD 'postgres';
postgres=# \q
exit
```

##ファイアウォールのポート開放
```
firewall-cmd --add-port=5432/tcp --zone=public --permanent
firewall-cmd --reload
```

#さいごに
過去に作成した手順書の為、参考資料が抜けています。随時、追加します。参考になれば幸いです。最後までお読みいただきありがとうございました。