次のページ 前のページ 目次へ

PostgreSQL HOWTO

Yoshio Shimamura <yoshios@green.ocn.ne.jp>

v2.0, 22 April 2003
この文書は、フリーなSQLデータベースである PostgreSQL の導入についての HOWTO です。 この文書の最新版は http://hp.vector.co.jp/authors/VA004572/index.html から入手可能です。

Table of contents


概要

フリーDBMSであるPostgreSQLのセットアップ方法、利用方法に関するメモ。
PostgreSQLは次のような特徴を持つ。

ソースの入手

PostgreSQLのソースは次のサイトからdownloadできる。 また、パッチは次のサイトから。

インストール

必要なもの

専用アカウントの作成

rootでインストールを行うとセキュリティ上問題があるので、専用アカウントを作成してインストールを行う。
# useradd postgres
# passwd postgres
******
******

インストール先ディレクトリの作成

専用アカウントがインストールできるように、/usr/local/pgsql(configureに--prefixを指定しなかったときのデフォルトのインストール先となるディレクトリ)を作成し、postresの所有とする。
# mkdir /usr/local/pgsql
# chown postgres:postgres /usr/local/pgsql

専用アカウントで作業

# su postgres
$ cd
$ mkdir src
ここで、アーカイブを/home/postgres/srcに持ってきて、展開する。
$ tar zxvf postgresql-7.3.x.tar.gz
$ cd postgresql-7.3.x
$ ./configure
$ make
$ make install
$ make clean
インストール作業は以上で終了。

データベース利用の準備

利用する前にやっておかなければいけないのは次のことです。

データベースの初期化

データベースの管理者アカウントでログインします。ここでは、先ほど作成したpostgresです。 ログインしたら、次のユーザ側の設定をpostgresユーザの.bashrcに記述して変更を反映させてから、次のコマンドを入力します。
$ /usr/local/pgsql/bin/initdb
...
...
...
Success. You can now start the database server using:

    /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
or
    /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
次に、PostgreSQLのサーバであるpostmasterを次のコマンドで起動します。 オプションの-Sはサイレントモードです。
$ postmaster -S
サービスとして起動するには、/etc/rc.d/rc.localに次のようなスクリプトを追加します。
POSTGRESDIR=/usr/local/pgsql
if [-x $POSTGRESDIR/bin/postmaster -a -d $POSTGRESDIR/data ];then
    rm -f /tmp/s.PGSQL.5432
    su - postgres -c "postmaster -S -i"
    echo -n 'postmaster '
fi

ユーザ側の設定

ユーザ側では、環境変数とコマンドパスの設定が必要です。各シェルの設定方法に合わせて次のbashによる例を参考に設定する。

~/.bashrcに追加

export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH=$MANPATH:$POSTGRES_HOME/man
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PGLIB
export PATH=$PATH:$POSTGRES_HOME/bin

変更を反映させる

$ source ~/.bashrc

ユーザの作成と削除

ユーザの作成

hogehogeというユーザを作成するには、createuserコマンドを用いて次のようにします。
$ createuser hogehoge
Enter user's postgres ID or RETURN to use unix user ID: 500 ->
Is user "hogehoge" allowed to create databases (y/n) y
Is user "hogehoge" a superuser? (y/n) n
createuser: hogehoge was successfully added
WWWサーバ経由で、PostgreSQLデータベースにアクセスするのは、WWWサーバのユーザ(通常nobody)なので、ユーザnobodyを登録する必要があります。
$ createuser nobody
セキュリティ上の理由から、このユーザnobodyには、DB作成権限も、ユーザの追加権限も与えてはいけません。

ユーザの削除

ユーザhogehogeをPostgreSQLのユーザから削除する場合は、destroyuserコマンドを用いて次のようにします。
$ destroyuser hogehoge

データベースの作成

hogehogeという名前のデータベースを作成するには、次のようにcreatedbコマンドを使います。データベース名をユーザ名と同じにしておくと、データベースを使用するときにデータベース名を省略できます。
$ createdb hogehoge

基本的なSQL操作

psqlコマンドラインツール

付属のpsql対話型インターフェイスを用いてデータベースにアクセスすることができる。
$ psql hogehoge
Welcome to the POSTGRESQL interactive sql monitor:
  Please read the file COPYRIGHT for copyright terms of POSTGRESQL
[PostgreSQL 6.5.3 on i686-pc-linux-gnu, compiled by gcc 2.7.2.3]

   type \? for help on slash commands
   type \q to quit
   type \g or terminate with semicolon to execute query
 You are currently connected to the database: hogehoge

hogehoge=>
psqlを終了するには、\qをタイプする。

テーブル(表)の操作

作成
create table table-name (column-name data-type, ...)
削除
drop table table-name
列の追加
alter table table-name add column-name data-type
列名の変更
alter table table-name rename column-name to new-name

基本的なデータ型

bool 2値論理型
char 固定長文字列
varchar 可変長文字列
int2 符号付2バイト整数
float8 倍精度浮動小数点数
date 日付型
time 時刻型

データ操作命令

SQLにおけるデータを操作する命令には次のようなものがある。
select データ検索
insert データ追加
update データ更新
delete データ削除

select命令の使い方

データを検索するselect命令の書式は次のとおり。
select col1, col2, col3, ... from talble-name where condition
例;pc-listというテーブルにあるosがlinuxのレコードのid, name, priceを表示する。
select id, name, price from pc-list where os='linux';

insert命令の使い方

insert into table-name(col1, col2, ...) values(val1, val2, ...)

update命令の使い方

update table-name set col1 = val1, col2 = val2, ... where condition

delete命令の使い方

行を削除するdelete命令の書式は次のとおり。
delete from table-name where condition
例;pc-listというテーブルにあるosフィールドがwinのデータを削除する。
delete from pc-list where os='win';

条件の指定方法


次のページ 前のページ 目次へ