働きたくないゆとりの備忘録

プログラミングとかサーバーとか学んだことをいろいろ書いていきたい。。。

CentOS 7にPostgreSQL最新版をインストール

スポンサーリンク

アップデートによる機能改善・追加で人気が高まりつつあるPostgreSQL。
そんな個人的にもオススメなPostgreSQLをインストールしていきたいと思います。

使用したOS

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)

データベースサーバー構築

PostgreSQLをダウンロード

今回はyumでインストールします。
バージョンは記事作成時点で最新の9.4.1です。

wget http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-1.noarch.rpm

他のインストール方法やバージョンを使いたい場合は公式サイトからダウンロードしてください。
https://www.postgresql.jp/download

PostgreSQLをインストール

ダウンロードしたパッケージをインストール後、yumでPostgreSQLをインストールしていきます。

rpm -ivh pgdg-centos94-9.4-1.noarch.rpm
yum -y install postgresql94-server postgresql94-devel postgresql94-contrib
データベースを初期化

早速起動したいところですが、ここで起動するとエラーを吐きます。

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


systemctl status postgresql-9.4で確認します。

[root@localhost src]# 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: failed (Result: exit-code) since 土 2015-04-25 16:55:51 JST; 22min ago
  Process: 49514 ExecStartPre=/usr/pgsql-9.4/bin/postgresql94-check-db-dir ${PGDATA} (code=exited, status=1/FAILURE)

 425 16:55:51 localhost.localdomain systemd[1]: Starting PostgreSQL 9.4 database server...
 425 16:55:51 localhost.localdomain postgresql94-check-db-dir[49514]: "/var/lib/pgsql/9.4/data/" is missing or empty.
 425 16:55:51 localhost.localdomain postgresql94-check-db-dir[49514]: Use "/usr/pgsql-9.4/bin/postgresql94-setup initdb" to initi...ter.
 425 16:55:51 localhost.localdomain postgresql94-check-db-dir[49514]: See %{_pkgdocdir}/README.rpm-dist for more information.
 425 16:55:51 localhost.localdomain systemd[1]: postgresql-9.4.service: control process exited, code=exited status=1
 425 16:55:51 localhost.localdomain systemd[1]: Failed to start PostgreSQL 9.4 database server.
 425 16:55:51 localhost.localdomain systemd[1]: Unit postgresql-9.4.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.


"/usr/pgsql-9.4/bin/postgresql94-setup initdb"をしろといっているので実行します。

[root@localhost src]# /usr/pgsql-9.4/bin/postgresql94-setup initdb
Initializing database ... OK


これで起動できるようになりました。

systemctl start postgresql-9.4
自動起動設定

最後にシステム起動時にPostgreSQLが自動で起動するようにします。

systemctl enable postgresql-9.4


以上でPostgreSQLのインストールは完了です。