ホーム > 技術情報 > OSS関連 > PostgreSQL 9.6 のインストール方法 (CentOS)

PostgreSQL 9.6 のインストール方法 (CentOS)

近年、商用環境での利用が増えてきている OSS (オープンソースソフトウェア) のデータベースである PostgreSQL のインストール方法を紹介します。

OSS のデータベース “PostgreSQL”

みなさまこんにちは
(株)EIT技術ブログです。

今回は PostgreSQL のお話しをさせて頂きます。

PostgreSQL は OSS のデータベースですが、近年商用環境での利用が増加しているとの話も多く耳にします。

商用サポートのある Red Hat Enterprise Linux を始め様々な分野で Linux OS が浸透していますが、最近は PostgreSQL のような Linux 以外の OSS 製品も商用環境にて利用されている場面が増えてきているのではないでしょうか。

弊社も流行に乗り遅れないよう OSS に注目しているのですが、その中で私も最近 PostgreSQL に触れる機会がありました。

手始めにインストールから試みたのですが、やはり新しい製品を扱う際は何かと躓いたりすることもありましたので、私自身の備忘録も兼ねて PostgreSQL のインストール方法を紹介しようと思います。

今回の記事における環境は以下の通りです。

OS : CentOS 7.3
PostgreSQL : 9.6.2

 

PostgreSQL のインストール方法

さて、インストール方法についてですが、前述の通り今回は CentOS を利用しているため、パッケージ管理ツール (yum) を使用する方法とソースコードからインストールする方法の 2種類の方法があります。

それぞれの方法にて手順が異なる部分はありますが、大まかな流れは以下のようになります。

PostgreSQL (実行ファイル等) のインストール
・データベースクラスタの作成
PostgreSQL の起動

 

ということで、それぞれの方法について紹介していきます。

※以下に紹介する手順は、なるべく必要な手順のみに絞ったシンプルな方法です。環境変数の設定やオプションの説明等割愛している部分も多いですので、開発コミュニティ (postgresql.org) が公開しているドキュメントや日本ユーザ会 (postgresql.jp) が公開している日本語ドキュメント等を是非参照してみて下さい。

 

yum を使用したインストール

まずは yum を利用した方法を紹介します。

 

1. リポジトリの登録

以下のコマンドにて、PostgreSQL の開発コミュニティが公開しているリポジトリ rpm を入手し、登録します。

上記コマンドを実行すると、/etc/yum.repos.d/ 配下に pgdg-96-centos.repo ファイルが格納されます。

 

2. PostgreSQL インストール

以下の yum コマンドにて、PostgreSQL をインストールします。

インストールが完了すると、/usr/pgsql-9.6/ 配下に実行ファイル等がインストールされます。

また、PostgreSQL 実行用のユーザ postgres や、デフォルトのデータベースクラスタ格納先のディレクトリである /var/lib/pgsql/9.6/data/ も作成されます。

 

3. データベースクラスタ作成

CentOS の yum コマンドにて PostgreSQL をインストールした直後の状態では、実行ファイル等がインストールされているのみであり、データベースの実体となるファイルは存在していません。

データベースの実体となるファイル等が格納されているディレクトリを PostgreSQL では “データベースクラスタ” と呼びますが、インストール後にこのデータベースクラスタを作成する必要があります。

まずは、ユーザを postgres ユーザに切り替えます。

postgres ユーザにて環境変数 PGDATA を確認すると、データベースクラスタ格納先ディレクトリが設定されていることが確認できます。

 ※PGDATA 等の環境変数のお話しは割愛します。

環境変数が設定されていることが確認できたら、initdb コマンドを使ってデータベースクラスタを作成します。

以下のようなメッセージが出力されれば完了です。

 

4. PostgreSQL 起動

データベースクラスタの作成が完了したら PostgreSQL を起動してみましょう。

CentOS の yum を使ってインストールした場合、systemd を使用して起動/停止等を行うためのユニットファイルが併せてインストールされているため、そちらを使って起動/停止することが可能です。

以下のコマンドにて、PostgreSQL を起動します。

 ※root 権限が必要であるため、root ユーザのパスワードを入力する必要があります。

上記コマンド実行後、以下のコマンドにて PostgreSQL が起動していることを確認します。

“Active:” 欄に “active (running)” と表示されていれば起動しています。

最後に、クライアントインターフェース (psql) を使用してデータベースにアクセスしてみましょう。

以下のコマンドにてデータベースに接続します。

正常に接続が完了するとプロンプト “postgres=#” が表示され、SQL や関数を実行することが可能です。

接続を終了する場合は “\q” コマンドを実行します。

yum でのインストール方法は以上です。

 

ソースコードからインストール

次にソースコードからインストールする方法を紹介します。

 

1. 事前準備

コンパイルに必要な gcc がインストールされていない場合は、yum コマンドでインストールしておきます。

また、PostgreSQL のコンパイルに必要となる以下のパッケージがインストールされていない場合も、同様にインストールしておきます。

 ※readline-devel と zlib-devel が無い状態でも PostgreSQL をコンパイルすることは可能なのですが、推奨されている方法ではないため割愛します。

最後に PostgreSQL のコンパイルや実行に使用するユーザ postgres を作成します。

 

2. ソースコードのダウンロード

以下のコマンドにて、ソースコードをダウンロードし解凍します。

 ※今回は /usr/local/src/ 配下にソースコードを展開して作業します。

解凍が完了し、ファイルが展開されていることを確認します。

 

3. コンパイル及びインストール

ソースコードの展開が完了したらコンパイルを実行します。

まずは、ユーザを postgres ユーザに切り替えます。

先ほどソースコードを展開したディレクトリに移動し、configure スクリプトを実行します。

configure スクリプトにて Makefile が作成されたことを確認します。

次に make コマンドを実行しコンパイルを実行します。

大量のメッセージが出力されますが、最後に以下のメッセージが出力されることを確認します。

コンパイルが完了したら make install コマンドでインストールを実行します。

インストール先ディレクトリ (今回の場合デフォルトのインストール先である /usr/local/pgsql/) に対する書き込み権限が必要であるため root ユーザにて実行します。

コンパイルを実施したディレクトリに移動し、make install コマンドにてインストールを実行します。

こちらも大量にメッセージが出力されますが、最後に以下のメッセージが出力されることを確認します。

インストール先のディレクトリ (今回の場合デフォルトのインストール先である /usr/local/pgsql/) 配下に実行ファイル等がインストールされていることを確認します。

インストール完了後、データベースクラスタを格納するディレクトリを作成し、必要な権限設定を実施しておきます。

作業完了後、root ユーザからログアウトします。

 

4. データベースクラスタ作成

yum コマンドにて PostgreSQL をインストールした時と同様に、ソースコードからインストールした場合もデータベースクラスタ作成する必要があります。

initdb コマンドでデータベースクラスタを作成しますが、ソースコードからインストールした場合は postgres ユーザの環境変数に PGDATA は設定されていないため、”-D” オプションでデータベースクラスタを作成するディレクトリを指定します。

以下のようなメッセージが出力されれば完了です。

 

5. PostgreSQL 起動

以下のコマンドにて、PostgreSQL を起動します。

最後に、クライアントインターフェース (psql) を使用してデータベースにアクセスしてみましょう。

正常に接続が完了するとプロンプト “postgres=#” が表示され、SQL や関数を実行することが可能です。

接続を終了する場合は “\q” コマンドを実行します。

ソースコードからのインストール方法は以上です。

 

終わりに

さて、今回は PostgreSQL のインストール方法を紹介させて頂きましたが、いかがだったでしょうか。

「yum でのインストールとソースコードからのインストールどちらが良いのか?」というようなお話しもあるようですが、それぞれにメリット/デメリットがあり明確な善し悪しの判断は難しいのではないかと思われます。

今回は PostgreSQL のインストール方法のみのお話でしたが、今後上記のようなインストール方法による違いや、PostgreSQL の仕組み等の情報も発信していけたらなと思いつつ、今回はこの辺で失礼させて頂きます。

最後まで読んで頂いた皆様、ありがとうございました。

お問い合わせ

各種お問い合わせに関しては、こちらからお願い致します。