概要
PostgreSQLバージョン11のインストールとシングル構成の設定方法をサクッと記載する
前提条件
・ipv6を無効化していること
・/etc/hostsにipv6の名前解決をしていないこと
・PostgreSQLのPGDATA領域を「/data_v11」とする
・下記、ディレクトがオーナ:postgres、グループ:postgres、パーミッション:755であること
/data_v11/pgarch
/data_v11/pgdata
/data_v11/pgxlog
PostgreSQL version11インストール
各OS用のリポジトリパッケージのURL一覧は、コチラを参照のこと
CentOS7用リポジトリインストール
# yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
PostgreSQL v11 インストール
# yum -y install postgresql11-server postgresql11-contrib
PostgreSQL データベース作成
PostgresSQLサービスファイル修正
# cp -p /usr/lib/systemd/system/postgresql-11.service /usr/lib/systemd/system/postgresql-11.service_org
# vi /usr/lib/systemd/system/postgresql-11.service
---
Environment=PGDATA=/var/lib/pgsql/11/data/
↓(変更)
Environment=PGDATA=/data_v11/pgdata/
---
# systemctl daemon-reload
データベース作成
PostgreSQL v11 インストール
# PGSETUP_INITDB_OPTIONS="-E UTF8 --no-locale" /usr/pgsql-11/bin/postgresql-11-setup initdb
Initializing database ... OK
postgresユーザ 環境変数設定
# su - postgres
$ echo "PATH=/usr/pgsql-11/bin:$PATH" > /var/lib/pgsql/.pgsql_profile
$ echo "PGDATA=/data_v11/pgdata" >> /var/lib/pgsql/.pgsql_profile
$ exit
PostgreSQLサービス起動
# systemctl start postgresql-11
# systemctl enable postgresql-11
PostgresSQL 設定
postgresql.conf 変更
# cp -p /data_v11/pgdata/postgresql.conf /data_v11/pgdata/postgresql.conf_org
# vi /data_v11/pgdata/postgresql.conf
---
#listen_addresses = 'localhost'
↓(変更)
listen_addresses = '*'
#password_encryption = md5
↓(変更)
password_encryption = scram-sha-256
---
pg_hba.conf 変更
# cp -p /data_v11/pgdata/pg_hba.conf /data_v11/pgdata/pg_hba.conf_org
# vi /data_v11/pgdata/pg_hba.conf
---
host all all 127.0.0.1/32 ident
↓(変更)
host all all 127.0.0.1/32 ident
host all all 0.0.0.0/0 scram-sha-256
---
※すべてのIPV4の接続をsha256認証で許可する
PostgreSQL 再起動
# systemctl restart postgresql-11
ロール作成(LOGIN権限)
# su - postgres
$ psql
postgres=# \du
ロール一覧
ロール名 | 属性 | 所属グループ
----------+----------------------------------------------------------------------------+--------------
postgres | スーパーユーザ, ロール作成可, DB作成可, レプリケーション可, RLS のバイパス | {}
postgres=# CREATE ROLE testuser LOGIN PASSWORD 'testuserpasswd';
CREATE ROLE
postgres=# CREATE ROLE repl REPLICATION PASSWORD 'replpasswd';
CREATE ROLE
postgres=# \du
ロール一覧
ロール名 | 属性 | 所属グループ
----------+----------------------------------------------------------------------------+--------------
infra | | {}
testuser | スーパーユーザ, ロール作成可, DB作成可, レプリケーション可, RLS のバイパス | {}
repl | ログインできません, レプリケーション可 | {}
postgres=# \q
動作確認
$ psql -h [対象サーバIPアドレス(localhost以外)] -U testuser -d postgres
ユーザ testuser のパスワード: *testuser password*
psql (11.X)
help でヘルプを表示します。
postgres-> \q
※psqlでログインできればOK
参考リンク
CentOS 7にPostgreSQL11をインストールする
ありがとうございます
コメント