今回は、CentOS8でPostgreSQLをインストールし、DBサーバを構築します。

手順

1.CentOS81号機にログイン
2.PostgreSQLのインストール
3.セキュリティ設定
4.動作確認

1.CentOS8 4号機にログイン

TeraTermで、CentOS 4号機にrootでログインします。

2.PostgreSQLのインストール

# PostgreSQLのインストール
[root@CE08PRD101 ~]# dnf module -y install postgresql:12/server
(省略)
インストール済み:
libpq-12.4-1.el8_2.x86_64
postgresql-12.1-2.module_el8.1.0+273+979c16e6.x86_64
postgresql-server-12.1-2.module_el8.1.0+273+979c16e6.x86_64
完了しました!

# 
[root@CE08PRDD104 ~]# postgresql-setup --initdb
 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

# 設定ファイル編集
[root@CE08PRDD104 ~]# vi /var/lib/pgsql/data/pg_hba.conf
host all all 127.0.0.1/32 ident

host all all 192.168.0.0/24 trust

[root@CE08PRDD104 ~]# vi /var/lib/pgsql/data/postgresql.conf
listen_addresses = 'localhost' # what IP address(es) to listen on;

listen_addresses = '*' # what IP address(es) to listen on;

# サービス起動
[root@CE08PRDD104 ~]# systemctl enable --now postgresql
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service.

# サービス起動確認
# Active:がactiveになっていることを確認する。
[root@CE08PRD101 ~]# systemctl status chronyq
● postgresql.service - PostgreSQL database server
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2020-09-23 19:29:35 JST; 40s ago
(省略)

3.セキュリティ設定

# ファイヤーウォールの許可設定
[root@CE08PRD101 ~]# firewall-cmd --add-service=ntp --permanent
success
[root@CE08PRD101 ~]# firewall-cmd --reload
success

# ファイヤーウォールの許可設定確認
# ftpが追加されたことを確認する。
[root@CE08PRD101 ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: cockpit dhcpv6-client ftp http ntp ssh
(省略)

4.動作確認

# 時刻同期の確認
[root@CE08PRDD104 ~]# su - postgres
[postgres@CE08PRDD104 ~]$

# テストデータベースの作成
[postgres@CE08PRDD104 ~]$ createdb testdb -O postgres
[postgres@CE08PRDD104 ~]$ psql -l
                                         データベース一覧
   名前    |  所有者  | エンコーディング |  照合順序   | Ctype(変換演算子) |     アクセス権限
-----------+----------+------------------+-------------+-------------------+-----------------------
 postgres  | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |
 template0 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
           |          |                  |             |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
           |          |                  |             |                   | postgres=CTc/postgres
 testdb    | postgres | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       |
(4 行)

# テストデータベースにログイン
[postgres@CE08PRDD104 ~]$ psql testdb
psql (12.1)
"help"でヘルプを表示します。

# テストテーブルの作成
testdb=# create table test_table (no int,name text);
CREATE TABLE
testdb=# \dt
              リレーション一覧
 スキーマ |    名前    |    型    |  所有者
----------+------------+----------+----------
 public   | test_table | テーブル | postgres
(1 行)

# テストテーブルにデータを挿入
testdb=# insert into test_table (no,name) values (01,'taro');
INSERT 0 1

# テストデータの確認
testdb=# select * from test_table;
 no | name
----+------
  1 | taro
(1 行)