xserver
Home クッキー及びWeb ビーコンについて



PostgreSQLのインストールと初期設定

PostgreSQLの概要


■PostgreSQLのダウンロード

Version PostgreSQL7.4.1
Homepage http://www.postgresql.org/
Download ftp://ftp.jp.postgresql.org/
Install PostgreSQL7.4.1.tar.gz

⇒PostgreSQL7.4.1の変更点

■PostgreSQL専用のユーザーとグループの追加

 PostgreSQLは、rootでの運用はできないため、インストールを行う前に予め、PostgreSQL専用のユーザーとグループを作成しておきます。

# groupadd postgres
# useradd postgres -g postgres -d /home/postgres
# passwd postgres



次に、PostgreSQLがインストールされるディレクトリを予め作成しておき、所有者をpostgreとします。その後、/usr/local/src 配下に"postgresql-バージョン名" のディレクトリを作成し、そのディレクトリの所有者もpostgresにしておきます。このディレクトリを予め作成しておかないと、su postgres でpostgres でログインした際にディレクトリが存在しないため、tar コマンドで展開できません。

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

# mkdir /usr/local/src/postgresql-7.4.1
# chown postgres.postgres /usr/local/src/postgresql-7.4.1

 root での作業はここまです。ここからは、postgresユーザーとして作業を行います。

# su - postgres
$ cd /usr/local/src/
$ tar xzvf postgresql-7.4.1.tar.gz
$ cd postgresql-7.4.1



■PostgreSQLのインストール


 7.3以降は、--enable-multibyte や --enable-syslog は標準で組み込まれますその他のオプションに関しては、configure --help で随時、確認してください。make check では、正常にコンパイルされたかどうかの確認を行います。

$ ./configure --enable-multibyte=EUC_JP --with-openssl=/usr/local/ssl
$ make all
All of PostgreSQL successfully made. Ready to install.
$ make check
======================
All 93 tests passed.
======================
$ make install
PostgreSQL installation complete.

■環境設定

postgresのホームディレクトリ直下にある .bash_profile に以下の行を追記します。

$ cd
$ vi .bash_profile

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

 システムにPATH の追加を反映させます。

$ source .bash_profile

■データベースクラスタの作成

 次に、データベースのデータを格納するディレクトリを作成します。このことをクラスタと呼びます。initdb コマンドでデータベースクラスタを作成しますが、この時、必ずpostgres ユーザーとして実行してください。データベースクラスタは上記で設定したPGDATA (=/usr/local/pgsql/data)に作成されます。--pgdata オプションで作成する場所を指定することもできます。上記で環境変数のPGDATAを加えた場合は、--pgdata を指定する必要はありません。

$ initdb --encoding=EUC_JP
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の起動

 以下のコマンドでPostgreSQLのデーモンプロセスであるpostmasterを起動させます。必要に応じて、起動前に/usr/local/pgsql/postgresql.conf を編集しておきます。この時、pg_ctl: no database directory specified and environment variable PGDATA unset のようなエラーが出た場合は、-D オプションをつけてPGDATA のディレクトリを指定してみてください
(-D /usr/local/pgsql/data)。

$ pg_ctl -w start
LOG: database system was shut down at 2004-01-05 22:16:57 JST
LOG: checkpoint record is at 0/9B0B5C
LOG: redo record is at 0/9B0B5C; undo record is at 0/0; shutdown TRUE
LOG: next transaction ID: 534; next OID: 17142
LOG: database system is ready
waiting for postmaster to start...done
postmaster successfully started

■データベースへの接続確認

以下のコマンドを実行して正常に表示されればOKです。

# su - postgres
$ psql -l

List of databases
Name    | Owner   | Encoding
-----------+----------+----------
template0 | postgres | EUC_JP
template1 | postgres | EUC_JP
(2 rows)

 また、次のようにデータベースにログインして確認します。template1 とはPostgreSQLに標準で用意されているサンプルデータベースです。以下のように表示されれば正常に稼動しています。対話形式を終了させるには「 \q 」とタイプしてください。

$ psql template1
Welcome to psql 7.4.1, the PostgreSQL interactive terminal.

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

template1=#


 もうひとつ動作確認です。

$ pg_ctl status
pg_ctl: postmaster is running (PID: 15289)




■自動起動の設定

 PostgreSQLの配布ソースの中にサンプルの自動起動設定ファイルが用意されています。これを、/etc/rc.d/init.d 配下に postgresql としてコピーし、実行許可を与えます。ファイルの内容はこちらを参照

# cd /usr/local/src/postgresql-7.4.1/contrib/start-scripts
# cp linux /etc/rc.d/init.d/postgresql
# chmod 755 /etc/rc.d/init.d/postgresql
# chkconfig --add postgresql
# chkconfig --list postgresql
postgresql 0:オフ 1:オフ 2:オン 3:オン 4:オン 5:オン 6:オフ



■クライアントマシンからの接続

 PostgreSQLはデフォルトでは、クライアントからの接続を拒否する設定になっています。クライアントからのアクセスを許可するにはデータベースクラスタ(/usr/local/pgsql/data)にある、pg_hba.conf 及び postgresql.conf を編集します。まず、postgresql.conf を開いて、#tcpip_socket = falseの行を以下の通りに修正します。false を true に修正し、コメントを削除します。

tcpip_socket = true

 次に、pg_hba.conf を開いて以下の行を見つけて、自ネットワークに合わせて host 行を修正します。書式は、以下のようになっています。

 書式:local データベース名 認証タイプ [ 認証引数 ]
     host データベース名 IPアドレス ネットマスク 認証タイプ [ 認証引数 ]


local all all trust
host all all 172.16.50.0 255.255.255.224 trust
host all all 172.16.51.0 255.255.255.240 trust

認証のタイプには、trust、password、crypt、ident、krb4、krb5、reject があります。trust では、接続は無条件で許可されます。password は、ユーザーごとに設定されたパスワードでログインしますが、パスワードは暗号化されずに平分で流れます。crypt では、挑戦応答プロトコルによって暗号化されるため、password より安全です。krb はKerberos を使った暗号化認証を用います。reject は接続を拒否します。

 以上の編集を終えたら、クライアントマシンからデータベースにアクセスしてみます。再起動をしないと設定が変更にならないと思います。アクセスするには、-h オプションをつけてPostgreSQLサーバーのIPアドレスを指定します。

$ psql -l -h 172.16.50.2
List of databases
Name | Owner | Encoding
-----------+----------+----------
template0 | postgres | EUC_JP
template1 | postgres | EUC_JP
(2 rows)

 仮に認証タイプにcrypt を使用するのならば、以下のようにします。

host all all 172.16.50.0 255.255.255.224 crypt

 





TOPに戻る

Sponcerd Link


Search
 
Web サイト内
Rental Server

【レンタルサーバのXbit】 低価格・高品質のビジネスクオリティー。300メガ1,050円~30分で サービススタート可能!


容量300MB、月額125円、高性能なサーバが日本最大級のバックボーンに直結。
さくらのレンタルサーバ



当サイトはLinux自宅サーバーの構築を目的としたサイトです。
当サイトに関するご意見、ご要望等は、こちらのメールアドレスよりお願いします。
Beginning | Introduction | Installation | Server |
Security | Tips | Related-Sites
Copyright©2003-2006 KORO All Rights Reserved.
総計:
今日:
昨日: