React CentOS7PostgreSQLReact Backend

React アプリ開発:Backend 構築 〜 PostgreSQL DB 環境 〜|CentOS7

classified-react-postgresql React
スポンサーリンク

React アプリのバックエンドを担当する Django REST framework と連動するため PostgreSQL 11.4 を設置します。データベースの作成は Python でバーチャル環境を構築してから作ります。2019/06/26現在、最新版である PostgreSQL 11.4 を設置します。

サーバ環境

CentOS Linux release 7.6.1810 (Core)

PostgreSQL の最新版を確認

2019年4月15日から、ディストリビューションごとにリポジトリ RPM が 1つになっていました。今後このリンクは変わらないと思いますが、念のため 最新版 を確認しておいてください。

画面左の PostgreSQL xx RPMs releasedxx が最新版です。ここでは 11 です。
また、画面右の CentOS 7 – x86_64 のリンクをコピーしてリポジトリを追加できます。

postgresql_available_repository_rpms_news
▲ 最新版確認(左) / リポジトリリンク(右)

リポジトリを追加

sudo yum -y localinstall https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm ← 上記のリンクを貼り付ける。
[admin@centos7 backend]$ sudo yum -y localinstall https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

...
インストール:
  pgdg-redhat-repo.noarch 0:42.0-4

完了しました!

利用可能なパッケージ情報を調べて見る ( 任意 )

先ほど最新版が 11 でしたので postgresql11-server が設置できると思うので ▼ ように調べてみましょう。

yum info postgresql11-server
[admin@centos7 backend]$ yum info postgresql11-server
...
利用可能なパッケージ
名前                : postgresql11-server
アーキテクチャー    : x86_64
バージョン          : 11.4
リリース            : 1PGDG.rhel7
容量                : 4.7 M
リポジトリー        : pgdg11/7/x86_64
要約                : The programs needed to create and run a PostgreSQL server
URL                 : https://www.postgresql.org/
ライセンス          : PostgreSQL
説明                : PostgreSQL is an advanced Object-Relational database management system (DBMS).
                    : The postgresql11-server package contains the programs needed to create
                    : and run a PostgreSQL server, which will in turn allow you to create
                    : and maintain PostgreSQL databases.

[admin@centos7 backend]$

postgresql11-server を設置

sudo yum -y install postgresql11-server
[admin@centos7 backend]$ sudo yum -y install postgresql11-server
...
 インストール:
   postgresql11-server.x86_64 0:11.4-1PGDG.rhel7
 依存性関連をインストールしました:
   libicu.x86_64 0:50.1.2-17.el7      postgresql11.x86_64 0:11.4-1PGDG.rhel7      postgresql11-libs.x86_64 0:11.4-1PGDG.rhel7
 完了しました!
[admin@centos7 backend]$

PostgreSQL を環境変数 PATH へ追加 ( 任意 )

echo ‘# PostgreSQL’ >> ~/.bash_profile
echo ‘export PGSQL_ROOT=”/usr/pgsql-11/”‘ >>
~/.bash_profile
echo ‘export PATH=”$PGSQL_ROOT/bin:$PATH”‘ >>
~/.bash_profile
. ~/.bash_profile ← source ~/.bash_profile が効かない場合

PostgreSQLサーバ「root」実行許可されていませんので、[root]ユーザには追加しないでください。

[admin@centos7 ~]$ echo '# PostgreSQL' >> ~/.bash_profile
[admin@centos7 ~]$ echo 'export PGSQL_ROOT="/usr/pgsql-11/"' >> ~/.bash_profile
[admin@centos7 ~]$ echo 'export PATH="$PGSQL_ROOT/bin:$PATH"' >> ~/.bash_profile
[admin@centos7 ~]$ . ~/.bash_profile
[admin@centos7 ~]$
[admin@centos7 ~]$ postgres -V
postgres (PostgreSQL) 11.4

PATH の変更 をすぐ 有効 にする シェルの再起動方法。下記のいずれかを実行するとpyenv を使い始める。

$ exec “$SHELL”
$ . ~/.bash_profile
$ source ~/.bash_profile

設置されたバージョンを確認

上記をスキップした場合、フルパスを入力して確認します。

/usr/pgsql-11/bin/postgres -V
[admin@centos7 backend]$ /usr/pgsql-11/bin/postgres -V
postgres (PostgreSQL) 11.4

DB を初期化して起動

PostgreSQLデータや設定関連/var/lib/pgsql/11/ 以下、実行コマンド/usr/pgsql-11/bin/ 以下に置かれます。

sudo postgresql-11-setup initdb
or
sudo /usr/pgsql-11/bin/postgresql-11-setup initdb
[admin@centos7 backend]$ which postgresql-11-setup
/usr/pgsql-11/bin/postgresql-11-setup
[admin@centos7 backend]$ sudo /usr/pgsql-11/bin/postgresql-11-setup initdb
Initializing database ... OK

# 起動します。
[admin@centos7 backend]$ sudo systemctl start postgresql-11

サービス自動起動を有効化

systemctl enable postgresql-11.service
[admin@centos7 backend]$ sudo systemctl enable postgresql-11.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-11.service to /usr/lib/systemd/system/postgresql-11.service.

PostgreSQL 11.4 へログイン

sudo -u postgres psql -U postgres
[root@centos7 ~]# sudo -u postgres psql -U postgres
could not change directory to "/root"
psql (9.2.24, server 11.4)
WARNING: psql version 9.2, server version 11.0.
         Some psql features might not work.
Type "help" for help.

postgres=# \q
[root@centos7 ~]#

PostgreSQL 11.4 サーバを再起動

systemctl restart postgresql-11.service
[root@centos7 ~]# systemctl restart postgresql-11.service

PostgreSQL 11.4 サーバの起動状態を確認

systemctl status postgresql-11.service
[root@centos7 ~]# systemctl status postgresql-11.service
● postgresql-11.service - PostgreSQL 11 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-11.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2019-06-27 12:17:13 JST; 8s ago
     Docs: https://www.postgresql.org/docs/11/static/
  Process: 28804 ExecStartPre=/usr/pgsql-11/bin/postgresql-11-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 28811 (postmaster)
   CGroup: /system.slice/postgresql-11.service
           ├─28811 /usr/pgsql-11/bin/postmaster -D /var/lib/pgsql/11/data/
           ├─28813 postgres: logger
           ├─28815 postgres: checkpointer
           ├─28816 postgres: background writer
           ├─28817 postgres: walwriter
           ├─28818 postgres: autovacuum launcher
           ├─28819 postgres: stats collector
           └─28820 postgres: logical replication launcher

Jun 27 12:17:13 centos7 systemd[1]: Stopped PostgreSQL 11 database server.
Jun 27 12:17:13 centos7 systemd[1]: Starting PostgreSQL 11 database server...
Jun 27 12:17:13 centos7 postmaster[28811]: 2019-06-27 12:17:13.551 JST [28811] LOG:  listening on IPv4 address "127.0.0.1", port 5432
Jun 27 12:17:13 centos7 postmaster[28811]: 2019-06-27 12:17:13.592 JST [28811] LOG:  listening on Unix socket "/var/run/post...L.5432"
Jun 27 12:17:13 centos7 postmaster[28811]: 2019-06-27 12:17:13.659 JST [28811] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
Jun 27 12:17:13 centos7 postmaster[28811]: 2019-06-27 12:17:13.714 JST [28811] LOG:  redirecting log output to logging colle...process
Jun 27 12:17:13 centos7 postmaster[28811]: 2019-06-27 12:17:13.714 JST [28811] HINT:  Future log output will appear in direc... "log".
Jun 27 12:17:13 centos7 systemd[1]: Started PostgreSQL 11 database server.
[root@centos7 ~]#

DBを作成するには、下記の記事をご参照ください。

参考文献

PostgreSQL 10 を CentOS 7 に yum インストールする手順

スポンサーリンク

コメント

タイトルとURLをコピーしました