のインストールと初期設定
日経Linuxの「基礎から学ぶPostgreSQL」を見ながらお勉強
情報源
PostgreSQLのホームページ(英語) http://www.postgresql.org/
日本PostgreSQLユーザ会のホームページ(日本語) http://www.postgresql.jp/
バージョンの歴史
バージョン | リリース時期 | 主な機能 |
---|---|---|
6.0 | 1997-01-29 | PostgreSQLとしてリリース |
6.1 | 1997-06 | 遺伝的アルゴリズムによる問い合わせ最適化、シーケンス |
6.2 | 1997-10 | JDBC、トリガ |
6.3 | 1998-03 | 副問い合わせ |
6.4 | 1998-10 | PL/pgSQL、マルチバイト文字 |
6.5 | 1999-06 | 多版型同時実行制御(MVCC)、ホットバックアップ |
7.0 | 2000-05 | 外部キー制約(Foreign Keys)、各種結合(Join) |
7.1 | 2001-04 | WAL(Wire-ahead Logging)、外部結合(Outer Joins) |
7.2 | 2002-02 | 平行VACUUM、MD5によるパスワード暗号化 |
7.3 | 2002-11 | スキーマ、動的SQL文実行 |
7.4 | 2003-11 | IPv6対応 |
8.0 | 2005-01 | Windows対応、アーカイブログ昨日、バックグランドライタ機能、テーブルスペースのサポート、PTTR(Point-In-Time Recovery)、Save Pointのサポート |
8.1 | 2005-11 | 2相コミット(two-phase commit)、自動VACUUM、ビットマップスキャン |
アカウントの作成
何でもかんでも root で作業するのはよくない。そこでユーザを作っておく。username は何でもいいんだけど PostgreSQL だとわかりやすいものにする。
# useradd postgres
インストール
次のようにインストールを行い、make install したときに PostgreSQL installation complete と表示されればOK。
# su - portgres $ cd /usr/local/src $ tar zxvf postgresql-8.1.3 $ cd postgresql-8.1.3 $ ./configure $ make $ make install
環境設定
これを ~/.bash_profile に登録する。
PGLIB = /usr/local/pgsql/lib PGDATA = /usr/local/pgsql/data export PGLIB export PGDATA
データベース・クラスタを作成する
「データベース・クラスタ」は、データベースのデータや設定ファイル、ログ等を格納する領域を指す。データベース・クラスタ内には複数のデータベースを置くことができる。
データベース・クラスタの作成は initdb コマンドで行う。no-locale を設定しないと日本語処理がおかしくなる。encoding は "UTF8" でもいいかも。initdb コマンドを実行するといろんなメッセージが表示される。/usr/local/pgsql/data/postgresql.conf ファイルに自動的に書き込まれるので、必要であれば書き換える。
# initdb --no-locale --encoding=EUC_JP
デフォルトではデータベースへの接続する際に認証を行わないので、必要であれば、/usr/local/pgsql/data/pg_hba.conf ファイルを書き換えておこう。
# initdb --no-locale --encoding=EUC_JP ... Success. You can now start the database server using: postmaster -D /usr/local/pgsql/data or pg_ctl -D /usr/local/pgsql/data -l logfile start
PostgreSQLの起動と停止
PostgreSQLでは postmasterというデーモンが1つのデータベース・クラスタに対応していて、これが動作していればデータベースにアクセスできる。起動してみよう。
$ pg_ctl start (起動) postmaster starting $ pg_ctl stop (停止) postmaster stopped $ pg_ctl status (状態を確認)
データベースに接続する
psqlというコマンドでデータベースに接続する。"-l" オプションでデータベース・クラスタ内のデータベース一覧が表示される。
$ psql -l List of databases Name | Owner | Encoding ------------+------------+------------ postgres | postgres | EUC_JP template0 | postgres | EUC_JP template1 | postgres | EUC_JP (テスト用なので使わない) (3 rows)
データベースを作成する
$ createdb sample CREATE DATABASE