PostgreSQLは本格的なデータベースを使えるサーバです。 ネットワーク経由で、サーバに接続しSQLで問い合わせを 行うことができます。最近では、PHPを使えるApacheサーバで提供されるウェブページから このPostgreSQLのデータベースにアクセスして簡単に使えるので、 多くのユーザがこれを用いています。
ソースアーカイブ名導入環境
- postgresql-7.0.2.tar.gz
- psqlj-7.0.2.diff.gz (日本語パッチ) 堀田さんのページから入手しました
- FreeBSD 3.5.1-RELEASE
インストール
管理用のアカウント postgres の作成
インストールするシステム上にPostgreSQLを管理するための ユーザアカウントを作成します。vipwやadduser などを使ってpostgresという名前のアカウントを作ります。環境変数の設定
.bashrc, .cshrcなどで以下の環境変数を設定します(管理者および各ユーザで必要です)
POSTGRES_HOME=/usr/local/pgsql PGLIB=/usr/local/pgsql/lib PGDATA=/usr/local/pgsql/data LD_LIBRARY_PATH=/usr/local/pgsql/libPostgreSQLのmakeとインストール
入手したアーカイブの存在するフォルダで以下のコマンドを実行します. gmakeが必要なので、入っていなければインストールする必要があります
% tar zxvf postgresql-7.0.2.tar.gz % zcat psqlj-7.0.2.diff.gz | patch -p0 % cd postgresql-7.0.2/src % ./configure --with-multibyte=EUC_JP % gmake # su # gmake install # mkdir /usr/local/pgsql/data # chown postgres /usr/local/pgsql/data # su postgres % /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data % /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start最後の2つのコマンドはデータベースを初期化し、サーバをスタートさせるためのものです。ブート時に自動的にサーバをスタートさせるための設定
/usr/local/etc/rc.d/pgsql.shというファイルに以下の内容を書き込みます。#!/bin/sh [ -x /usr/local/pgsql/bin/postmaster ] && { su -l postgres -c 'exec /usr/local/pgsql/bin/postmaster \ -i -D/usr/local/pgsql/data \ -S -o -F > /usr/local/pgsql/errlog' & echo -n ' pgsql' }さらに書き込んだファイルのモードを755にしてください。 また管理ユーザがpostgresでない場合は上の su -l の後にユーザ名を 指定してください。他のホストからのアクセスの許可
管理用のアカウント(postgres)で/usr/local/pgsql/data/pg_hba.confを編集します。 例えば、IPアドレスが 210.252.0.208 から 210.252.0.223までのアクセスを 許可するには、以下の行を追加します。host all 210.252.0.208 255.255.255.240 trust
ユーザとデータベースの管理
コマンドを実行する場合は環境変数を設定が必要です。データベースの作成と削除
データベースの操作は管理用のアカウント posgres でコマンドを実行することによって行います。
データベースを作るには、以下のコマンドを用います。
% /usr/local/pgsql/bin/cratedb 作成するデータベース名
次のコマンドですでに存在するデータベースを削除できます。
% /usr/local/pgsql/bin/dropdb 削除するデータベース名ユーザの作成
以下のコマンドを実行してユーザを作り、デフォルトのデータベース(ユーザ名と同じ名前のDB)を作成します。 (以下の例ではfujikiというユーザを作成しています)#su pgsql % /usr/local/pgsql/bin/createuser fujiki Enter user's postgres ID or RETURN to use unix user ID: 1002 -> Is user "fujiki" allowed to create databases (y/n) y Is user "fujiki" allowed to add users? (y/n) y createuser: fujiki was successfully added # /usr/local/pgsql/bin/creatdb fujikiデフォルトのデータベースは作成しなくても使えますが、この場合、 psqlを実行する際に引数でデータベースを指定することが必要となります。
動作確認
以下をを実行する場合は環境変数を設定が必要です。動作確認はフロントエンドでpsqlを起動して行います。 ここでSQL文を入力して、正しく動作するか確認します。
確認例% /usr/local/pgsql/bin/psql Welcome to the POSTGRESQL interactive sql monitor: Please read the file COPYRIGHT for copyright terms of POSTGRESQL 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: fujiki fujiki=> create table price_table (name text,price int); CREATE fujiki=> insert into price_table values ('orange',100); INSERT 151434 1 fujiki=> insert into price_table values ('apple',150); INSERT 151435 1 fujiki=> select * from price_table; name |price ------+----- orange| 100 apple | 150 (2 rows) fujiki=> \qこのようにテーブルを作ることができ、データの挿入や検索が正しく 行えれば、正しく動作しています。参考 SQLコマンド
処理 コマンド 例 テーブルの作成 create create table price_table(name text,price int); テーブルの削除 drop drop table price_table; データの挿入 insert insert into price_table values ('apple',150); データの検索 select select * from price_table where name ='apple'; データの削除 delete delete from price_table where name='apple'; アクセス権付与 grant grant all on price_table to nobody;
(アクセス権にはall,select,update,insert,delete,rule)が使える
ここまで来たら、さらに PHPを追加したApacheをインストールして ウェブページからPostgreSQLにアクセスできるようにしましょう
APACHE-PHPのインストールへ
「サーバの構築」のページへ戻る
ホームへ戻る