そもそもCentOSには初めからPostgreSQ […]
そもそも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