そもそも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