PostgreSQL セットアップからDBの作成&削除まで

| コメントをどうぞ

いつ「ポスグレ使う」と言われてもウロタエないように少し調べてみました。
今回はインストールとDBを作成および削除する方法について分かったことを記します。
環境はCentOS 6.5です。

セットアップ

# yum postgresql-server

yumpostgresql-serverをインストールすると、依存関係であるpostgresqlpostgresql-libsもインストールされます。

  • postgresql
  • postgresql-libs
  • postgresql-server

サービスを起動しようとしたところ、以下のメッセージが表示されて起動できませんでした。

# service postgresql start
/var/lib/pgsql/data is missing. Use "service postgresql initdb" to initialize the cluster first.

初期化のため、最初にservice postgresql initdbを実行しなければならないようです。
serviceコマンドでinitdbは指定したことが無かったので、どういうことかとrcスクリプトを見てみたところ

# cat /etc/init.d/postgresql

initdb()とcase文にinitdbがありました。(startstopが規定というわけではないんですね。)
納得できたのでメッセージ通りにinitdbを実行し、サービスを起動しました。

# service postgresql initdb
# service postgresql start

ちなみにOS起動時にPostgreSQLのサービスを自動で開始したい場合はchkconfigコマンドで設定できます。

# chkconfig postgresql on

DBの作成と削除

DBの作成と削除はそれぞれ次のコマンドで可能です。

createdb ${DB名}
dropdb ${DB名}

ただし、PostgreSQLではこれらの操作はrootユーザーではできません。rootユーザーで操作しようとすると次のメッセージが表示されました。

createdb: could not connect to database postgres: FATAL:  ユーザ"root"のIdent認証に失敗しました

なのでインストール時に自動で作成されたユーザーpostgresを使用します。

su - postgres

なお、作成されたユーザーとグループは次のコマンドで確認できます。

# id postgres
uid=XX(postgres) gid=XX(postgres) groups=XX(postgres)

コマンドラインによる操作

psqlコマンドでPostgreSQLをコマンドラインで操作できます。

PostgreSQLのバージョンの表示

# psql --version

コマンドのヘルプの表示

# psql --help

DBの一覧

# psql --list

DBへの接続

#psql ${DB名}

接続が成功するとプロンプトが${DB名}=#になり、テーブルの作成や削除、CRUDの実行が可能になります。
以下にDBに接続している状態で使用可能なコマンドの一部を記します。

テーブルの一覧

=# \d

指定したテーブル情報の一覧

=# \d ${テーブル名}

DBからの切断と終了

=# \q

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>