desknet's DB マニュアル
ユーザーマニュアルDB管理者マニュアルシステム管理者マニュアル
  メニューに戻る
  

■データベース(PostgreSQL)のインストールと設定

Linux版インストールメニューに戻る


PostgreSQLは オープンソースの本格的な RDBMS(Relational Database Management System) です。PostgreSQLに関する詳細は、日本PostgreSQLユーザー会の公式サイト(http://www.postgresql.jp/)をご参照ください。

desknet's DBをお使いいただけるPostgreSQLのバージョンについては、『動作環境』をご参照ください。

1.パッケージソースの展開

suコマンドを実行し、rootユーザーにスイッチしてください。

[guest@xxxxxx guest]# su
Password:

FTP転送したファイルからパッケージソースを展開します。この例ではFTP転送したファイルが/usr/local/srcにあるものとします。

[root@xxxxxx guest]# cd /usr/local/src
[root@xxxxxx src]# tar xvzf postgresql-9.3.6.tar.gz

展開が終了すると、/usr/local/src下にpostgresql-9.3.6というディレクトリが作成されます。

2.パッケージのインストール

パッケージの構成(Configuration)を行なうために、configureスクリプトを実行します。
ここでは、特にコマンドラインオプションを使用せずにデフォルトで構成します。
configureスクリプトは、ソースを展開したディレクトリに移動して実行します。

[root@xxxxxx src]# cd /usr/local/src/postgresql-9.3.6/
[root@xxxxxx postgresql-9.3.6]# ./configure

次にパッケージの構築(Make)を行ないます。パッケージの構築には GNU make を使用します。構築作業には、ハードウェアに依存しますが5分から30分ほど掛かります。

[root@xxxxxx postgresql-9.3.6]# gmake
      ・
      ・(中略)
      ・
gmake[1]: `all' に対して行うべき事はありません.
gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.3.6/config' から出ます
All of PostgreSQL successfully made. Ready to install.
[root@xxxxxx postgresql-9.3.6]#

パッケージの構築が完了したら、インストールを行なう前にPostgreSQLが想定通りに動作することを検証するためのリグレッションテストを行なうことができます。
リグレッションテストは、特権ユーザー(root)では動作しませんので、任意の非特権ユーザーで実行します。ここでは「neo」というユーザーで実行しています。

[root@xxxxxx postgresql-9.3.6]# su neo
[neo@xxxxxx postgresql-9.3.6]# gmake check
      ・
      ・(中略)
      ・
=======================
 All 122 tests passed.
=======================

gmake[2]: ディレクトリ `/usr/local/src/postgresql-9.3.6/src/test/regress' から出ます
gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.3.6/src/test' から出ます
[neo@xxxxxx postgresql-9.3.6]#

最後にパッケージをインストールします。この作業は特権ユーザー(root)で行ないます。

[neo@xxxxxx postgresql-9.3.6]$ su
パスワード:
[root@xxxxxx postgresql-9.3.6]# gmake install
      ・
      ・(中略)
      ・
/bin/sh ../config/install-sh -c -m 755 ./install-sh '/usr/local/pgsql/lib/
pgxs/config/install-sh'
gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.3.6/config' から出ます
PostgreSQL installation complete.
[root@xxxxxx postgresql-9.3.6]#

インストールが完了したら、gmake cleanコマンドでクリーニングを行ないます。これにより、ソースツリーから構築用のファイルを削除しディスク領域を空けることができます。

[root@xxxxxx postgresql-9.3.6]# gmake clean
3.管理ユーザーの作成

PostgreSQLのインストールが完了したら、データベースの管理ユーザーを作成します。

[root@xxxxxx postgresql-9.3.6]# useradd postgres

必要に応じてpasswdコマンドによってユーザーのパスワードを設定してください。


管理ユーザーは今後PostgreSQLの管理コマンドを利用しますので、作成したpostgresユーザーの環境変数にPATHを設定します。
通常はユーザーのホームディレクトリ下の「.bash_profile」ファイルをviなどで編集して次の記述を追加します。

[root@xxxxxx postgresql-9.3.6]# cd /home/postgres
[root@xxxxxx postgres]# vi .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=/usr/local/pgsql/bin:$PATH:$HOME/bin ←追加

export PATH
4.データベースの作成

PostgreSQLのデータベースを作成します。
まず、データベースファイルを配置するディレクトリを作成し、ディレクトリの所有者を管理ユーザー(postgres)に変更します。
この例では、データベースファイルの格納先を /var/pgsql/data としています。

[root@xxxxxx ~]# mkdir -p /var/pgsql/data
[root@xxxxxx ~]# chown -R postgres:postgres /var/pgsql

次に管理ユーザーにて、データベースを作成します。 -Dオプションでデータベースファイルの格納先を指定します。

[root@xxxxxx ~]# su - postgres
[postgres@xxxxxx ~]$ /usr/local/pgsql/bin/initdb \
> --encoding=utf8 --no-locale -D /var/pgsql/data
      ・
      ・(中略)
      ・
Success. You can now start the database server using:

      /usr/local/pgsql/bin/postgres -D /var/pgsql/data
or
      /usr/local/pgsql/bin/pg_ctl -D /var/pgsql/data -l logfile start

[postgres@xxxxxx ~]$

これで、PostgreSQLを起動する準備が整いましたので、PostgreSQLの管理コマンドを利用してPostgreSQLを起動します。
正常に起動できたら、テスト用のデータベースを作成して接続してみます。

[postgres@xxxxxx ~]$ /usr/local/pgsql/bin/pg_ctl -D /var/pgsql/data -l logfile start
server starting
[postgres@xxxxxx ~]$ /usr/local/pgsql/bin/createdb test
[postgres@xxxxxx ~]$ /usr/local/pgsql/bin/psql test
psql (9.3.6)
Type "help" for help.

test=#

このように表示されれば、データベースは正常に稼動しています。
\q と入力して通常のシェルに戻ります。

test=# \q
[postgres@xxxxxx ~]$
5.データベースの自動起動設定

PostgreSQLが正常に稼動したら、サーバーの電源投入時にデータベースが自動的に起動するように設定をします。
作業は特権ユーザー(root)で行ないます。


PostgreSQLで配布されるソースの中にあるcontrib/start-scripts/linuxファイルを/etc/rc.d/init.d下にpostgresqlというファイル名でコピーし、実行権限を与えます。

[postgres@xxxxxx ~]$ su
パスワード:
[root@xxxxxx postgres]# cd /usr/local/src/postgresql-9.3.6/contrib/start-scripts/
[root@xxxxxx start-scripts]# cp linux /etc/rc.d/init.d/postgresql
[root@xxxxxx start-scripts]# chmod 755 /etc/rc.d/init.d/postgresql
                      

postgresqlファイル内に、パスの記述を設定する所があります。 この中の、データベースファイルの格納先(PGDATA)の記述を環境に合わせて変更します。

[root@xxxxxx ~]# vi /etc/rc.d/init.d/postgresql
      ・
      ・(中略)
      ・
## EDIT FROM HERE

# Installation prefix
prefix=/usr/local/pgsql

# Data directroy
PGDATA="/var/pgsql/data" ←環境に合わせて変更

# Who to run the postmaster as, usually "postgres". (NOT "root")
PGUSER=postgres

# Where to keep a log file
PGLOG="$PGDATA/serverlog"

## STOP EDITING HERE
                      

スクリプトの準備ができたら、chkconfigコマンドによる設定を行ないます。

[root@xxxxxx ~]# /sbin/chkconfig --add postgresql
[root@xxxxxx ~]# /sbin/chkconfig --list | grep postgresql
postgresql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
                      

サーバーの電源投入時にデータベースが自動的に起動するように設定されました。 サーバーを再起動して、データベースが自動起動されていることを確認してください。

引き続き「desknet's DBのインストールと各種設定」にお進みください

Linux版インストールメニューに戻る


  
Copyright (C) NEOJAPAN Inc. All Rights Reserved.