そろそろデータベース、できればOSSのものを扱えるようになりたいなぁ…と思ったので、CentOS 7 にPostgreSQLを入れてみることにした。 今回は、とりあえずインストールとサービスの起動までを行う。

1.インストール

まずはインストールから。 yumを利用出来る環境なのであれば、以下のようにコマンドを実行することでPostgreSQLリポジトリの追加、パッケージのインストール出来る。

●PostgreSQL 9.4の場合

yum install http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-redhat94-9.4-1.noarch.rpm
yum groupinstall "PostgreSQL Database Server 9.4 PGDG"

9.3以前の場合は、利用するリポジトリが違うので注意する。

rpmパッケージなどからインストールする場合は、こちらから必要なrpmパッケージをダウンロードしてインストールすると良いだろう。 普通にrpmコマンドからインストールすると手間なので、「yum localinstall」でインストールすると楽だろう。

2.サービスの起動

次に初期設定を行う。 まず最初に、クラスタの初期化を行う。このコマンドを実行せずにサービスを起動した場合、以下のようなエラーが出てサービスが起動しないので注意する。

[root@test-centos7 ~]# systemctl start postgresql-9.4
Job for postgresql-9.4.service failed. See 'systemctl status postgresql-9.4.service' and 'journalctl -xn' for details.

以下のコマンドを、rootユーザで実行する。

/usr/pgsql-9.4/bin/postgresql94-setup initdb
[root@test-centos7 ~]# /usr/pgsql-9.4/bin/postgresql94-setup initdb
Initializing database ... OK

[root@test-centos7 ~]# systemctl start postgresql-9.4
[root@test-centos7 ~]# systemctl status postgresql-9.4
postgresql-9.4.service - PostgreSQL 9.4 database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql-9.4.service; disabled)
   Active: active (running) since 金 2015-05-29 07:21:01 JST; 29s ago
  Process: 9239 ExecStart=/usr/pgsql-9.4/bin/pg_ctl start -D ${PGDATA} -s -w -t 300 (code=exited, status=0/SUCCESS)
  Process: 9233 ExecStartPre=/usr/pgsql-9.4/bin/postgresql94-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
 Main PID: 9243 (postgres)
   CGroup: /system.slice/postgresql-9.4.service
           tq9243 /usr/pgsql-9.4/bin/postgres -D /var/lib/pgsql/9.4/data
           tq9244 postgres: logger process
           tq9246 postgres: checkpointer process
           tq9247 postgres: writer process
           tq9248 postgres: wal writer process
           tq9249 postgres: autovacuum launcher process
           mq9250 postgres: stats collector process

 5月 29 07:21:00 test-centos7 systemd[1]: Starting PostgreSQL 9.4 database server...
 5月 29 07:21:00 test-centos7 pg_ctl[9239]: < 2015-05-29 07:21:00.929 JST >LOG:  ログ出力をログ収・セ・
 5月 29 07:21:00 test-centos7 pg_ctl[9239]: < 2015-05-29 07:21:00.929 JST >ヒント:  ここからのロ・..。
 5月 29 07:21:01 test-centos7 systemd[1]: Started PostgreSQL 9.4 database server.
Hint: Some lines were ellipsized, use -l to show in full.

無事、起動するようになった。 自動起動設定をする場合は、以下のコマンドを実行する。

systemctl enable postgresql-9.4
[root@test-centos7 ~]# systemctl enable postgresql-9.4
ln -s '/usr/lib/systemd/system/postgresql-9.4.service' '/etc/systemd/system/multi-user.target.wants/postgresql-9.4.service'

3.psqlコマンドを使ってみる

それでは、実際にpsqlコマンドを使ってPostgreSQLに接続してみよう。 postgresユーザに切り替えてpsqlコマンドを実行してみる。

su - postgres
psql
[root@test-centos7 ~]# su - postgres
最終ログイン: 2015/05/29 (金) 07:26:29 JST日時 pts/0
-bash-4.2$ psql
psql (9.4.2)
"help" でヘルプを表示します.

postgres=#

無事、PostgreSQLのコンソールにログインすることが出来るようになった。