これまで MariaDB などの MySQL 系のリレーショナルデータベースばかり使っていたのですが、PostgreSQL を使う機会が増えそうなので、改めて勉強することにしました。

というわけで PostgreSQL を(いつもの CentOS に)インストール・・・しようとしたのですが、1つ問題が生じました。CentOS や RedHat の yum の標準リポジトリに PostgreSQL が含まれているので、yum で簡単にインストールできます。ただ標準リポジトリからインストールできるのは PostgreSQL 8.4 です。より新しいバージョン(9.x)をインストールしたい場合の、その手順を紹介します。

CentOS に yum で PostgreSQL 9.x をインストールするには、まず標準のリポジトリで PostgreSQL がインストールされないように設定を変更しておきます。/etc/yum.repos.d/CentOS-Base.repo をテキストエディタで開き、[base] セクションと [updates] セクション両方に以下の1行を追加します:
  :
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
exclude=postgresql*

[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
exclude=postgresql*
  :

次に PostgreSQL 9.x 用の yum リポジトリを追加します。以下は 64bit 版での例です:
# yum -y localinstall http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-centos94-9.4-1.noarch.rpm

これで PostgreSQL 9.x をインストールする準備が出来ました。次のコマンドで PostgreSQL 9.4 Server をインストールします:
# yum -y install postgresql94-server

インストール後に、データベース初期化のコマンドを実行する必要があります:
# service postgresql-9.4 initdb

そして PosgreSQL サーバーを起動して、自動起動設定も加えておきます:
# service postgresql-9.4 start
# chkconfig postgresql-9.4 on


ここまでの手順で PostgreSQL サーバーが導入され、サービスとして起動し、利用できる状態になりました。では実際に使ってみましょう。

このインストールの手順の中で postgres という名前のユーザーがシステムに追加されているはずです。まずはこのユーザーのパスワードを設定します:
# passwd postgresql
ユーザー postgres のパスワードを変更。
新しいパスワード: (設定するパスワードを入力、表示されません)
新しいパスワードを再入力してください:(パスワードを再入力)
passwd: 全ての認証トークンが正しく更新できました。

その後、postgres ユーザーに切り替えて、psql コマンドを実行するとコマンドライン環境でローカルの PostgreSQL サーバーに接続します:
# su - postgres
$ psql
psql (9.4.5)
"help" でヘルプを表示します.

postgres=#

この状態から SQL を発行してデータベースやユーザーを作ったり、テーブルを定義したり、問い合わせをしたり、・・・といった一連の作業を行うことができます。

このコマンドライン PostgreSQL 環境から抜ける場合は \q を実行します:
postgres=# \q
$