Personal tools

CentOS で PostgreSQL を使ってみよう!(2)

(3) インストールの確認

インストールしてどんなファイルができたのか?などを確認します。


  1. 『postgres』というアカウント が作成されていることを、「id」コマンドや「finger」コマンドで確認します。(各種 ID やホームディレクトリは、以下の例と異なる可能性があります。)
    [root @server1 ~]# id postgres
    uid=26(postgres) gid=26(postgres) 所属グループ=26(postgres)

    [root @server1 ~]# finger postgres
    Login: postgres Name: PostgreSQL Server
    Directory: /var/lib/pgsql Shell: /bin/bash
    Never logged in.
    No mail.
    No Plan.
  2. 「/usr/」にインストールされ、さまざまなファイルができていることを確認します。たとえば、以下のようにコマンドが存在するかを見てみます。
    [root @server1 ~]# which psql
    /usr/bin/psql
  3. サービスに登録されていることを確認します。「/etc/init.d/」に「postgresql」という PostgreSQL の起動・停止を行なうスクリプトが追加されています。
    [root @server1 ~]# ls /etc/init.d/
    pand pcscd portmap postfix postgresql proftpd psacct
  4. OS を起動したときに PostgreSQL も起動するように設定します。設定は「chkconfig」コマンド で行ないます。「on」で OS 起動時に起動するようにし、「--list」で状態を確認します。
    [root @server1 ~]# chkconfig postgresql on
    [root @server1 ~]# chkconfig --list postgresql
    postgresql 0:off 1:off 2:on 3:on 4:on 5:on 6:off


3. PostgreSQL を使ってみる


では、いよいよ実際に PostgreSQL を使ってみます。

使ってみる前に、PostgreSQL を使うためのアカウントを、自動的に作成された『postgres』以外にも作成しておきます。 Linux 上のアカウントを作成するには、「useradd」コマンドを実行します。

例では、『anzai』というアカウントを作成してこれを使っていきます。

[root @server1 ~]# useradd anzai


  1. 「service」コマンド で postgresql サービスを起動します。「/etc/init.d/postgresql start」と実行するのと同じです。
    [root @server1 ~]# service postgresql start
    postgresql サービスを開始中: [ OK ]

    初めて起動したときは、データベースクラスタの初期化(initdb) が行なわれます。これは、データベースを使うために必要なディレクトリ構成を作る処理で、「/var/lib/pgsql/data/」に作成されます。

    [root @server1 ~]# service postgresql start
    データベースを初期化中: [ OK ]
    postgresql サービスを開始中: [ OK ]
  2. 以降は「postgres」アカウントで操作するため、「su」コマンドでユーザを変えます。
    [root @server1 ~]# su - postgres
  3. PostgreSQL に接続する「psql」コマンド を使って、データベースの一覧を表示してみます。一覧は「-l」オプションで表示することができます。

    「-U」オプション で、コマンドを実行する PostgreSQL 上のユーザを指定できます。(省略すると、ログインしているアカウントと同じ名前のユーザで接続して実行しようとします。)
    -bash-3.1$ psql -l
    List of databases
    Name | Owner | Encoding
    -----------+---------+----------
    postgres | posgres | UTF8
    template0 | posgres | UTF8
    template1 | posgres | UTF8
    (3 rows)

    なお、初期化直後でまだ何も使っていない状態でも、上の実行例のとおり 3 つのデータベースが存在します。ただし 8.0 以前のバージョンの PostgreSQL では、「postgres」データベースがありません。

  4. 「createuser」コマンド で、ユーザ(ロール)を作成します。ここでは、データベースを作成できるような権限を与えています。
    -bash-3.1$ createuser anzai
    Shall the new role be a superuser? (y/n) n
    Shall the new role be allowed to create databases? (y/n) y
    Shall the new role be allowed to create more new roles? (y/n) n
  5. 「createdb」コマンド で、データベースを作成します。ここでは、上で追加したユーザ(ロール)でデータベースを作成します。(チュートリアル 1.3 「データベースの作成」
    -bash-3.1$ createdb mydb -U anzai
    createdb: could not connect to database postgres:
    FATAL: Ident authentication failed for user "anzai"

    ところが、コマンドを実行すると、"FATAL" というレベルのエラー になってしまい、データベースが作成できません。

    メッセージには「Ident 認証に失敗した」と、原因が書いてあります。この Ident 認証とは、Linux 上のアカウントと PostgreSQL のアカウントが一致しないとエラーにする、という設定で、あらかじめ設定されているものです。

    ということで、「su - postgres」を終わって root に戻るため「exit」コマンドを実行し、root で「su」コマンドを実行して、先ほど作成したアカウントになります。

    -bash-3.1$ exit
    [root @server1 ~]# su - anzai

    そして、そのアカウントで「createdb」コマンドを実行します。

    ※ 今度は、Linux 上のアカウントと PostgreSQL 上のユーザが一致しているにので、「-U」オプション はつけなくても構いません。
    [anzai @server1 ~]$ createdb mydb
    CREATE DATABASE

    今度は作成できました。また「psql -l」コマンドでデータベースの一覧を見てみると、「mydb」という新しいデータベースが作成できていることが確認できます。

    [anzai @server1 ~]$ psql -l
    List of databases
    Name | Owner | Encoding
    -----------+---------+----------
    mydb | anzai | UTF8
    postgres | posgres | UTF8
    template0 | posgres | UTF8
    template1 | posgres | UTF8
    (4 rows)
  6. 「psql」コマンド で、作成したデータベースに接続します。(チュートリアル 1.4 「データベースへのアクセス」
    [anzai @server1 ~]$ psql mydb
    Welcome to psql 8.1.4, the PostgreSQL interactive terminal.

    Type: \copyright for distribution terms
    \h for help with SQL commands
    \? for help with psql commands
    \g or terminate with semicolon to execute query
    \q to quit

    mydb=>

これにて、チュートリアル を実施できる環境がととのいました。ここまでがチュートリアルの第 1 章ですので、第 2 章以降にお進みいただけます。


(2009年5月11日公開)

(3) では、ログなどの高度な設定や、CentOS で使うにあたっての注意点をご紹介します!


 

You are here: Home 読み物 入門者向けの記事 CentOSでPostgreSQLを使ってみよう! CentOS で PostgreSQL を使ってみよう!(2)