[Index]

SQLデータベースの導入(PostgreSQL)


これがなきゃ...

コンピュータといえば、誰がなんと言おうとデータベースシステムです! VAIOにもデータベースシステムを導入してこそスーパー情報マシンたり得るのです。

SQLデータベースをバックエンドに、WWWブラウザをフロントエンドに据えたシステムこそ、インターネット時代のやりかたでしょ? もちろん、ミドルは、apache + PHP3でいくつもり...

そんな訳で、PostgreSQLを導入します。

PostgreSQLのインストール準備

セキュリティ上スーパーユーザがPostgreSQLをインストールするのは、好ましくありませんので、suして、PostgreSQL管理専用のアカウントを作成します。
$ su
# useradd postgres
# passwd postgres
********
********
インストール先ディレクトリ/usr/local/pgsqlを作成し、管理専用アカウントの所有に変更します。

/usr/lcoal/pgsqlは、デフォルトのインストール先です。configureスクリプトに--prefixを指定する場合には、そのディレクトリを作成し、所有者を変更する必要があります。

# mkdir /usr/local/pgsql
# chown postgres:postgres /usr/local/pgsql

ここからは、管理専用アカウントで作業します。PostgreSQLのソースアーカイブを、専用アカウントのホームディレクトリ下の任意のディレクトリに置いて、次のようにインストールします。
$ tar zxvf postgresql-6.5.3.tar.gz
$ cd postgresql-6.5.3/src
$ ./configure --with-mb=EUC_JP
$ make all
$ make install
マニュアルとドキュメントもインストールしておきます。
$ make install-man $ cd ../doc $ make install
インストールは、まぁこんな具合にすんなりいきます。 後は、データベースを使用できるようにするために、若干準備が必要です。 準備作業は、データベースを利用するユーザ側の環境設定とデータベースの初期化の2つです。

ユーザの環境設定

ユーザ側では、~/.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
設定を有効にするために、コマンドラインから次のコマンドを入力します。
. ~/.bashrc

データベースの初期化

データベースの初期化は、管理アカウントで作業します。 管理アカウントの環境設定を済ませてから、次のコマンドで初期化を行います。
$ /usr/local/pgsql/bin/initdb
PostgreSQLを使うには、サーバであるpostmasterを起動する必要があります。次のようにサイレントモードで起動します。
$ postmasger -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

ユーザの作成

データベースを利用するユーザを作成します。管理アカウントでcreateuserコマンドを使い次のように作成します。
# su postgres
$ createuser hogehoge
ユーザを削除するには、次のようにします。
$ destroyuser hogehoge

データベースの作成

それでは、実際にデータベースを使用するユーザとしてログインし、データベースを作成します。

ここでは、dbnameという名前のデータベースを作成することにします。データベース名をユーザ名と同じにしておくとちょっぴり幸せになれます。

$ createdb dbname

コマンドラインからの操作

フロントエンドをどういう構成にするか...などと考え始めると頭の中で構想がぐるぐる回り始め、「きちんと設計を...」ということになるので、お手軽に使うためにとりあえず付属のpsqlツールでデータベースを操作します。
$ psql dbname
すると次のように、コマンドラインからデータベースを操作するためのプロンプトが表示されます。
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: dbname

hogehoge=>
表示にあるように、終了するには、\qと入力します。

テーブルの作成

データベースにテーブルを作成するには次のように操作します。
hogehoge=> create table morning (
hogehoge-> id int2,
hogehoge-> name text,
hogehoge-> email text
hogehoge-> );
CREATE
hogehoge=>
プロンプトの変化に注意しましょう。create tableでは、テーブルの構造を指定しています。
[TOP]