Linux(CentOS)へRPMパッケージからPostgreSQLをインストール

PostgreSQL データベース
この記事は約7分で読めます。

※当ブログではアフィリエイト広告を利用しています。

前回はCentOSへRuby on Railsをインストールしました。

前回の記事はこちら⇒Linux(CentOS)へRuby on Railsをインストール

続いて、「PostgreSQL」をインストールします。

なお、今回のバージョンは以下です。

  • CentOS-6.4-i386
  • PostgreSQL 9.2.4

PostgreSQLのRPMパッケージをインストール

「yum search」コマンドで検索したところ、デフォルトのバージョンは「8.4」だったので、PostgreSQL公式サイトより最新バージョン「9.2」のRPMパッケージをダウンロードし、インストールする。

なお、今回のURLはこちら⇒http://yum.postgresql.org/9.2/redhat/rhel-6-i386/pgdg-centos92-9.2-6.noarch.rpm

rpm」コマンドのインストールするオプションは「-i」。

「-v」と「-h」オプションでインストール情報を出力するので、「-ivh」ってな感じで、同時に付けておく。

#PostgreSQLのRPMパッケージのダウンロード
$ wget http://yum.postgresql.org/9.2/redhat/rhel-6-i386/pgdg-centos92-9.2-6.noarch.rpm

#RPMパッケージのインストール
$ rpm -ivh pgdg-centos92-9.2-6.noarch.rpm

#インストールしたパッケージ情報を参照
$ rpm -q pgdg-centos92
pgdg-centos92-9.2-6.noarch

PostgreSQLのインストール

RPMパッケージをインストールすると、「yum search」コマンドで検索するとパッケージが追加されている。

インストールしたバージョン「9.2」を指定し、PostgreSQLをインストールする。

#パッケージ検索
$ yum search postgresql92
…
(省略)
…
postgresql92.i686 : PostgreSQL client programs and libraries
postgresql92-devel.i686 : PostgreSQL development header files and libraries
postgresql92-server.i686 : The programs needed to create and run a PostgreSQL server

#PostgreSQLのインストール(以下の3つ)
$ yum install postgresql92
$ yum install postgresql92-devel
$ yum install postgresql92-server

#環境変数「PATH」の表示
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/[ユーザー]/bin

#環境変数「PATH」へ追加
$ PATH=$PATH:/usr/pgsql-9.2/bin

#環境変数「PATH」の表示
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/[ユーザー]/bin:/usr/pgsql-9.2/bin

#PostgreSQLのバージョン確認
$ psql --version
psql (PostgreSQL) 9.2.4

なお、PostgreSQLの設定ファイルとプログラムファイルの場所は、今回の場合、以下のようになっています。

#設定ファイル等
/var/lib/pgsql/9.2/data

#PostgreSQLプログラムファイル
/usr/pgsql-9.2

PostgreSQLのサービス起動

サービスを確認してみたところ、起動されていないので起動する。

まずは、PostgreSQLのサービスを自動起動に変更しておく。

#サービス自動起動の確認
$ chkconfig --list postgresql-9.2
postgresql-9.2  0:off   1:off   2:off   3:off   4:off   5:off   6:off

#PostgreSQLのサービスを自動起動にする
$ chkconfig postgresql-9.2 on

#サービス自動起動の確認
$ chkconfig --list postgresql-9.2
postgresql-9.2  0:off   1:off   2:on    3:on    4:on    5:on    6:off

サービスを自動起動にしても、それと同時にサービスが起動されるわけではないので、起動してやらなくてはいけない。

初回起動時は「initdb」を実行してデータベース初期化を行う必要があるよう。

なお、サービスのコマンドは「service」コマンドでも、「/etc/init.d/postgresql-9.2 start」というようにしても可能。

#サービスの確認
$ service postgresql-9.2 status
 は停止しています

#サービスの確認
$ /etc/init.d/postgresql-9.2 status
 は停止しています

#サービスの起動(エラー)
$ service postgresql-9.2 start
/var/lib/pgsql/9.2/data is missing. Use "service postgresql-9.2 initdb" to initialize the cluster first.
                                                 [失敗]
#データベース初期化
$ service postgresql-9.2 initdb
データベースを初期化中:                          [  OK  ]

#サービスの起動
$ service postgresql-9.2 start
postgresql-9.2 サービスを開始中:                 [  OK  ]

#サービスの確認
$ service postgresql-9.2 status
 (pid  2627) を実行中...

PostgreSQLへログイン

「/etc/passwd」を見ると、ユーザー「postgres」が追加されている。

とりあえずパスワード変更しておき、ユーザー「postgres」にスイッチユーザーすると「psql」コマンドで、PostgreSQLへログインできた。

なお、「psql -l」のように「-l」オプションを付けると、データベース一覧が参照できるよう。

ちなみにログアウトは「\q」です。

#ユーザー確認
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
…
(省略)
…
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash

#ユーザー「postgres」のパスワード変更
$ passwd postgres

#ユーザー「postgres」へスイッチユーザー
$ su postgres

#「psql」コマンドでログイン
bash-4.1$ psql
psql (9.2.4)
"help" でヘルプを表示します.

postgres=#

#ログアウト
postgres=# \q

参考サイト

rpm の使い方

CentOS 5.1 インストール後の設定(不要なサービスを止める):アフェリエイトツールをEXCELで作ってみよう♪

CentOS で PostgreSQL を使ってみよう!(1) — Let’s Postgres

コメント

  1. ザッツ須之内 より:

    細かい記事ありがとうございました
    助かりました!

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