PostgreSQL

PostgreSQL インストール Linux環境

以下本家サイトへアクセス
https://www.postgresql.org/download/
OS(Linux)→ディストリビューション(RED HAT/Cent OS)を選択
https://www.postgresql.org/download/linux/redhat/
PostgreSQLのバージョン、プラットフォーム、アーキテク者を選択
以下内容が自動で表示されるので、そのままコピペ実行でインストールできる。

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

# Install PostgreSQL:
sudo yum install -y postgresql14-server

# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14
[root@vm105 ~]# su - postgres
最終ログイン: 2023/02/25 (土) 09:54:25 JST日時 pts/1
-bash-4.2$ 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
(3 行)

-bash-4.2$
Linux firewallの解放
-- firewallの状態確認
[root@vm105 ~]# firewall-cmd --state
running


-- 現在の設定確認
[root@vm105 ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3 enp0s8
  sources:
  services: dhcpv6-client ssh

  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

[root@vm105 ~]#

-- 外部から繋がるようにポート開放

[root@vm105 ~]# firewall-cmd --add-port=5432/tcp --zone=public --permanent
success

-- 恒久設定の再読み込み

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

-- 再読み込みしたところで確認
[root@vm105 ~]# firewall-cmd --list-all --zone=public
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3 enp0s8
  sources:
  services: dhcpv6-client ssh
  ports: 5432/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

[root@vm105 ~]#
postgresql.confの修正

listen_addresses と port を有効にする

# - 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)
port = 5432                             # (change requires restart)
postgresユーザのパスワード変更

デフォルトではpg_hba.confの設定が以下のようになっています。これは、postgres(OSユーザ)からローカル接続であれば、パスワードなしでpsql接続が行えます。(OSユーザと同じ名前のユーザがPostgreSQLで作成されていればパスワード無しでログインできます)個人的にはpeerは使用しないほうが良いと感じているので私はmd5(もしくはscram-sha-256)に書き換えるようにしています。

初期状態
# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only
local   all             all                                     peer
# rootからpostgresユーザへスイッチしてパスワード変更
#
# su - postgres
最終ログイン: 2023/02/25 (土) 14:43:35 JST日時 pts/1
-bash-4.2$ psql
psql (14.7)
"help"でヘルプを表示します。

postgres=# alter user postgres with password 'postgres';
ALTER ROLE
postgres=#
pg_hba.confの修正
# 外部から接続できるようにする
# 以下は全てのデータベースに対し全てのユーザが指定アドレスから
# パスワード認証で接続できるようにしている
#
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             192.168.56.0/24          md5

サービスの再起動
# systemctl restart postgresql-14

スポンサーリンク
タイトルとURLをコピーしました