Postgres9.2.4インストールCentOS6.4

そもそもCentOSには初めからPostgreSQLが入っているので一応確認

$yum list | grep postgres

8.**が表示されているんで始めに削除

#yum remove postgresql-server
#yum remove postgresql
#yum remove postgresql-libs

PostgreSQLの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のインストール

#パッケージ検索
$ 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/hide/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/hide/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のサービス起動

#サービス自動起動の確認
$ 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

Linux(CentOS)でPostgreSQLのユーザー、データベース作成


PostgreSQLユーザー、データベースの作成

続いて、PostgreSQLユーザーとデータベースを作成する。
なお、今回作成したユーザー名は「ginji」、データベース名は「moodle」です。
ユーザーとデータベースの作成は、PostgreSQLのスーパーユーザー「postgres」で行う。
このユーザーはPostgreSQLをインストールしたら、同時に作成されているはず。
ついでに、削除コマンドも参考に記載しておく。
createuserのオプションは次のよう。
-a…ユーザー作成権限付与(スーパーユーザー)
-d…データベース作成権限付与
-U…接続ユーザー指定
-P…パスワードプロンプトを表示
createdbのオプションは次のよう。
-O…所有ユーザー指定

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

#PostgreSQLユーザー「ginji」の作成
$ createuser -d -U postgres -P ginji

#PostgreSQLユーザー「ginji」の削除
$ dropuser ginji

#データベース「moodle」の作成
$ createdb -O ginji moodle

#データベース「moodle」の削除
$ dropdb moodle

psqlで接続

#ユーザー「postgres」でログイン
$ psql -U ginji -d moodle

#テーブル一覧表示
$ \d

#テーブル構造表示
$ \d テーブル名

#psqlで使用できるコマンドヘルプ
$ \?

#psqlログアウト
$ \q

Categories:

Tags: