PostgreSQL触ってみた(DB作成&ログイン)

1.データベースクラスタ(データ記憶域)の作成
は、yumでインストールした場合は不要

2.initdbコマンドを実行

$ initdb -E UTF8 --no-locale
データベースシステム内のファイルの所有者は"postgres"ユーザでした。
このユーザがサーバプロセスを所有しなければなりません。

データベースクラスタロケールCで初期化されます。
デフォルトのテキスト検索設定はenglishに設定されました。

ディレクトリ/var/lib/pgsql/9.0/dataの権限を設定しています ... ok
サブディレクトリを作成しています ... ok
デフォルトのmax_connectionsを選択しています ... 100
デフォルトの shared_buffers を選択しています ... 32MB
設定ファイルを作成しています ... ok
/var/lib/pgsql/9.0/data/base/1にtemplate1データベースを作成しています ... ok
pg_authidを初期化しています ... ok
依存関係を初期化しています ... ok
システムビューを作成しています ... ok
システムオブジェクトの定義をロードしています ... ok
変換を作成しています ... ok
ディレクトリを作成しています ... ok
組み込みオブジェクトに権限を設定しています ... ok
情報スキーマを作成しています ... ok
PL/pgSQL サーバサイド言語をロードしています ... ok
template1データベースをバキュームしています ... ok
template1からtemplate0へコピーしています ... ok
template1からpostgresへコピーしています ... ok

警告: ローカル接続向けに"trust"認証が有効です。
pg_hba.confを編集する、もしくは、次回initdbを実行する時に-Aオプショ
ンを使用することで変更することができます。

成功しました。以下を使用してデータベースサーバを起動することができます。

    postmaster -D /var/lib/pgsql/9.0/data
または
    pg_ctl -D /var/lib/pgsql/9.0/data -l logfile start

3.postgresql.confの編集

$ vi $PGDATA/postgresql.conf
log_destination = 'stderr'
→log_destination = 'syslog'

4.起動と停止

$ pg_ctl start
サーバは起動中です。
$ pg_ctl stop
サーバ停止処理の完了を待っています....完了
サーバは停止しました

5.自動起動設定

# chkconfig --list postgresql-9.0
postgresql-9.0  0:off   1:off   2:off   3:off   4:off   5:off   6:off
# chkconfig postgresql-9.0 on
# chkconfig --list postgresql-9.0
postgresql-9.0  0:off   1:off   2:on    3:on    4:on    5:on    6:off

6.DBユーザの作成

$ createuser dboper
新しいロールをスーパーユーザにしますか? (y/n)n
新しいロールに対してデータベースを作成する権限を与えますか? (y/n)n
新しいロールに対して別のロールを作成する権限を与えますか? (y/n)n
createuser: データベース postgres に接続できませんでした: サーバに接続できませんでした: そのようなファイルやディレクトリはありません
                              ローカルにサーバが稼動していますか?
                              Unixドメインソケット"/tmp/.s.PGSQL.5432"で通信を受け付けていますか?
(DB止めたままだった……)
$ pg_ctl start
サーバは起動中です。
$ createuser dboper
新しいロールをスーパーユーザにしますか? (y/n)n
新しいロールに対してデータベースを作成する権限を与えますか? (y/n)n
新しいロールに対して別のロールを作成する権限を与えますか? (y/n)n

7.DBの作成

$ createdb -O dboper testdb
(O=Owner)

作成済みDBの一覧は以下のコマンドで確認

$ psql -l
                                        データベース一覧
   名前    |  所有者  | エンコーディング | 照合順序 | Ctype(変換演算子) |      アクセス権
                                                                                                                                                                                              • -
postgres | postgres | UTF8 | C | C | template0 | postgres | UTF8 | C | C | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | C | C | =c/postgres + | | | | | postgres=CTc/postgres testdb | dboper | UTF8 | C | C | (4 行)

8.DBログイン

$ psql testdb
psql (9.0.2)
"help" でヘルプを表示します.

testdb=#
(ctrl+Dでログオフ)