【PostgreSQL-0014】CentOS8にPostgreSQL11をインストールする

オープンソースのERP iDempiere7.1をインストールするために、オープンソースのデータベースPostgreSQL11をCentOS8にインストールする方法について、調査及び研究し、その成果をまとめています。

Step1:PostgreSQLをYumリポジトリに登録する

sudo dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

rpm -qi pgdg-redhat-repo

Step2:PostgreSQL11をCentOS8にインストールする

sudo dnf module disable postgresql

sudo dnf clean all

sudo dnf -y install postgresql11-server postgresql11

dnf info postgresql11-server postgresql11

Step3:データベースの初期化と自動起動の設定

データベースの初期化

sudo /usr/pgsql-11/bin/postgresql-11-setup initdb

自動起動

sudo systemctl enable --now postgresql-11

Step4:初期設定

postgresql.confの設定

ファイルのパス : /var/lib/pgsql/11/data/postgresql.conf

ファイルを編集するために、権限の設定をゆるくする。

sudo chmod 777 /var/lib/pgsql/

sudo chmod 777 /var/lib/pgsql/11/

sudo chmod 777 /var/lib/pgsql/11/data

sudo chmod 777 /var/lib/pgsql/11/data/postgresql.conf

vi /var/lib/pgsql/11/data/postgresql.conf

   listen_address = 'localhost'のコメントアウトを解除 -> 先頭の"#"を削除

[Insert]キーで、編集モード。

[Escape]キーで、編集モード終了。

[:wq] で 保存してエディタを終了。

 

pg_hba.confの設定

ファイルのパス : /var/lib/pgsql/11/data/pg_hba.conf

ファイルを編集するために、権限の設定をゆるくする。

sudo chmod 777 /var/lib/pgsql/11/data/pg_hba.conf

vi /var/lib/pgsql/11/data/pg_hba.conf

  • METODをtrustに修正
  • レプリケーション関連の設定はとりあえず”#”でコメントアウト

[Insert]キーで、編集モード。

[Escape]キーで、編集モード終了。

[:wq] で 保存してエディタを終了。

 

アクセス権限の再設定

/var/lib/pgsql/11/dataのアクセス制限を700か750にしないとPostgreSQLの再起動が行えないので、サクセス権限の再設定を行う。

sudo chmod 700 /var/lib/pgsql/11/data

※700にしないと、PostgreSQLが起動できない。

※PostgreSQL11からは、initdbのオプション指定で700でなくても起動できるようになった様子(参照: https://www.sraoss.co.jp/tech-blog/pgsql/11-0/  )

 

PostgreSQLの再起動

設定の変更を有効にするためにPostgreSQLを再起動

sudo systemctl restart postgresql-11

【補足】PostgreSQLのスタートとストップのコマンド

◆開始

sudo systemctl start postgresql-11

◆終了

sudo systemctl stop postgresql-11

Step5:iDempiereをインストールするための設定

adempiereユーザーロールの作成

sudo su - postgres

psql -U postgres -c "CREATE ROLE adempiere SUPERUSER LOGIN PASSWORD 'adempiere'"

 logout

 

iDempiereのデータベースの作成

createdb --template=template0 -E UNICODE -O adempiere -U adempiere idempiere

psql -d idempiere -U adempiere -c "ALTER ROLE adempiere SET search_path TO adempiere, pg_catalog"

 

iDempiereのデータベースのリストア

psql -d idempiere -U adempiere -f ExpDat.dmp

【補足説明】iDempiereとJPiereとはダンプファイルが異なります。

iDempiereの環境を構築する場合とJPiereの環境を構築する場合とでは、リストアするダンプファイルが異なりますので、注意して下さい!!

【iDempiereのダンプファイル】

  • iDempiereサーバーのData -> seed の中にある、Adempiere_pg.jar

【JPiereのダンプファイル】

  • JPCSのDataフォルダの中にある、ExpDat.dmpファイル

その他

iDempiereデータベースの削除

dropdb -U adempiere idempiere

参考サイト