トップページ -> コンピュータ実習 -> PostgreSQL インストールと各種ツールの使用法 -> Linux で PostgreSQL バージョン 9.0.4 のソースコードのダウンロードとインストールと基本設定とテスト実行
[サイトマップへ]  

Linux で PostgreSQL バージョン 9.0.4 のソースコードのダウンロードとインストールと基本設定とテスト実行

サイト構成 連絡先,業績など コンピュータ実習 データの扱い コンピュータ設定 教材(公開) サポートページ

Postgres のインストールとテスト実行を行ないます

参考情報

PostgreSQL 関係のツール類の使用法については, 「PostgreSQL インストールと各種ツールの使用法」の Web ページを見てください.

参考Webページ:


 

事前に決めておく事項


前準備

■ Ubuntu バージョン 11.04 の場合

  1. アップデート操作

    sudo apt-get -yV install update
    sudo apt-get -yV install upgrade
    sudo reboot
    

  2. PostgreSQL サーバと関連のプログラムがパッケージでインストールされている場合にはアンインストールする

    すでに PostgreSQL がパッケージでインストールされている可能性があります. 次の手順で確認します.

    dpkg -l | grep postgres
    

    次のような手順で削除します.

    sudo apt-get -yV --purge remove postgresql
    sudo apt-get -yV --purge remove postgresql-client-common
    sudo apt-get -yV --purge remove postgresql-common
    sudo apt-get -yV --purge remove postgresql-contrib
    sudo apt-get -yV --purge remove postgresql-8.4-postgis
    

  3. ソフトウエア・ソースで,ソースコードを「インターネットからダウンロード」するように設定

    「システム」→ 「システム管理」→ 「アップデート・マネージャ」と操作し,左下の「設定...」をクリック.

    その後,「Ubuntu のソフトウエア」をクリック.「ソースコード」がチェックされていることを確認する.(もしチェックされていなければチェックする).

    その後,「再読込」をクリック.

    その後,「閉じる」をクリック.

  4. PostgreSQL のインストールに必要となる前提ソフトウエアのインストール

    「apt-get build-dep」を使うと簡単.

    sudo apt-get -yV install libreadline-dev
    sudo apt-get -yV build-dep postgresql
    sudo apt-get -yV build-dep postgresql-contrib
    sudo apt-get -yV install tcl-dev
    

  5. pgAdmin III のインストール

    sudo apt-get -yV install pgadmin3
    

Fedora 15 の場合

  1. アップデート操作

    sudo yum check-update
    sudo yum update
    sudo reboot
    

  2. PostgreSQL サーバと関連のプログラムがパッケージでインストールされている場合にはアンインストールする

    すでに PostgreSQL がパッケージでインストールされている可能性があります. 次の手順で確認します.

    yum list installed | grep postgre
    

    次のような手順で削除します.

    sudo yum remove postgresql-devel
    sudo yum remove postgresql-server
    sudo yum remove postgresql
    sudo yum remove postgresql-docs
    sudo yum remove postgresql-contrib
    sudo yum remove postgresql-odbc
    sudo yum remove postgresql-jdbc
    sudo yum remove cacti
    sudo yum remove postgis
    sudo yum remove postgis-docs
    sudo yum remove postgis-utils
    sudo yum remove postgis-jdbc
    

  3. pgAdmin III のインストール

    sudo yum install pgadmin3
    

PostgreSQL のダウンロードとビルドとインストール

cd /tmp
if [ ! -f postgresql-9.0.4.tar.gz ]; then 
  wget http://www.ring.gr.jp/pub/misc/db/postgresql/source/v9.0.4/postgresql-9.0.4.tar.gz
fi
rm -rf postgresql-9.0.4
tar -xvzof postgresql-9.0.4.tar.gz
cd postgresql-9.0.4
./configure --enable-nls 
./configure --enable-nls --with-tcl --with-perl --with-python --with-openssl --with-libxml --with-libxslt 
make

Ubuntu 11.04 での実行結果例

  • PostgreSQL のインストール

    sudo make install
    

    Ubuntu 11.04 での実行結果例


    Postgres 用アカウントの作成,Postgres のデータベースディレクトリとデータベースファイルの作成

    Postgres サーバプログラムを root 権限で実行したくないので,Postgres サーバプログラムの実行用に, Postgres 用アカウントを使います . (これは,Linux 上のアカウントの中の1つです). データベース管理者のユーザ名とパスワードとは別ものなので,混同しないこと.

    1. postgres 用アカウントとグループの作成  

      スーパーユーザで,下記の手順を行い,Postgres 用アカウント postgres を作成します.

      sudo /usr/sbin/groupadd postgres
      sudo /usr/sbin/useradd -d /usr/local/pgsql -g postgres postgres
      sudo chown postgres:postgres -R /usr/local/pgsql
      

      Ubuntu 11.04 での実行結果例

    2. postgres 用アカウントが存在することの確認

      ※ 「x」は no password という意味(パスワードがないという意味ではない)

      cat /etc/passwd | grep postgres
      

      Ubuntu 11.04 での実行結果例

    3. データベースディレクトリの作成と権限の設定

      ここでは,データベースディレクトリは /usr/local/pgsql/data とします.好きに決めていいです.日本語を含まないディレクトリがいいでしょう.

      sudo rm -rf /usr/local/pgsql/data
      sudo mkdir /usr/local/pgsql/data
      sudo chown -R postgres:postgres /usr/local/pgsql/data
      

    4. データベースファイルの生成

      「sudo su - postgres」は,postgres ユーザに切り替える操作です. 元のユーザに戻るには「exit」と操作します.

      Ubuntu 11.04 での操作手順と実行結果例

      sudo su - postgres
      /usr/local/pgsql/bin/initdb --encoding='UTF-8' -D /usr/local/pgsql/data
      

      Fedora 15 での操作手順と実行結果例

      sudo su - postgres
      initdb --encoding='UTF-8' -D /usr/local/pgsql/data
      

    5. 元のユーザに戻りたいときは,「exit」と操作する.

      exit
      

    Postgres のサンプルデータベースの作成と権限の設定

    ここでは,Postgres サーバの起動と,データベース(データベース名はtestdbとします) の生成を行う. createdb, psql などデータベースを操作するコマンドを使うときは,PostgreSQL のサーバを起動しておく必要があります.

    1. Postgres サーバの起動

      pg_ctl を使って PostgreSQL サーバをバックグラウンドで動作させます.

      他のマシンからのネットワーク経由でのアクセスを許可したいときは「/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -o "-i" start」のように「-o "-i"」を付けます. (但し、セキュリティ設定を行なった後で)行うこと).

      sudo su - postgres
      /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start  
      

    2. 引き続き,データベース論理名と,オーナと,文字コード(エンコーディング)を指定して createdb コマンドを起動

      PostgreSQL の場合,データベースを作成するには, createdb コマンドを使用します.

      /usr/local/pgsql/bin/createdb -U postgres -E UTF8 testdb
      
      • -U postgres : 接続に使用するユーザ.PostgreSQL データベース管理者 (postgres) を指定する.

        「-U postgres」の「postgres」は,Postgres 用アカウントではなくて, Postgres データベース管理者のユーザ名です.

        ※ 権限上,(基本は)PostgreSQL データベース管理者 (postgres) だけがデータベースを作成できます.

      • -E UTF8 : 

        文字コード(エンコーディング)UTF8

      • testdb : 

        データベース論理名 testdb のデータベースを作成したいとき

      Ubuntu 11.04 での実行結果例

      Fedora 15 での実行結果例

      createdb コマンドの詳細は, http://www.postgresql.jp/document/pg833doc/html/app-createdb.html

      文字セットの詳細は, http://www.postgresql.jp/document/pg833doc/html/multibyte.html#MULTIBYTE-CHARSET-SUPPORTED

    3. PostgreSQL サーバを終了したいときは,「pg_ctl stop」と操作する.

      pg_ctl stop
      

    4. 元のユーザに戻りたいときは,「exit」と操作する.

      exit
      

    Posgres のデータベースの一覧表示

    1. データベースの一覧表示を行なってみる

      PostgreSQL の場合,データベースの一覧表示は,「psql -l」で行う.

      sudo su - postgres
      /usr/local/pgsql/bin/psql -l
      

      Ubuntu 11.04 での実行例

      Fedora 15 での実行例

    2. 表示結果の確認

      Ubuntu 11.04 での実行結果例

      Fedora 15 での実行結果例

    3. PostgreSQL サーバを終了したいときは,「pg_ctl stop」と操作する.

      pg_ctl stop
      

    4. 元のユーザに戻りたいときは,「exit」と操作する.

      exit
      

    テーブルの定義と作成

    1. PostgreSQL サーバへの接続

      sudo su - postgres
      /usr/local/pgsql/bin/psql -d testdb
      

      Ubuntu 11.04 での実行結果例

    2. SQL を用いたテーブル定義

      CREATE TABLE order_records (
          id            INTEGER  PRIMARY KEY NOT NULL,
          year          INTEGER  NOT NULL CHECK ( year > 2008 ),
          month         INTEGER  NOT NULL CHECK ( month >= 1 AND month <= 12 ),
          day           INTEGER  NOT NULL CHECK ( day >= 1 AND day <= 31 ),
          customer_name TEXT  NOT NULL,
          product_name  TEXT  NOT NULL,
          unit_price    REAL     NOT NULL CHECK ( unit_price > 0 ),
          qty           INTEGER  NOT NULL DEFAULT 1 CHECK ( qty > 0 ),
          created_at    TIMESTAMP NOT NULL,
          updated_at    TIMESTAMP,
          CHECK ( ( unit_price * qty ) < 200000 ) );
      

      Ubuntu 11.04 での実行結果例

    3. SQL を用いたテーブル生成

      BEGIN TRANSACTION;
      INSERT INTO order_records VALUES( 1, 2009, 10, 26,  'kaneko', 'orange A', 1.2, 10, current_timestamp, NULL );
      INSERT INTO order_records (id, year, month, day, customer_name, product_name, unit_price, qty, created_at) VALUES( 2, 2009, 10, 26,  'miyamoto', 'Apple M',  2.5, 2, current_timestamp );
      INSERT INTO order_records (id, year, month, day, customer_name, product_name, unit_price, qty, created_at) VALUES( 3, 2009, 10, 27,  'kaneko',   'orange B', 1.2, 8, current_timestamp );
      INSERT INTO order_records (id, year, month, day, customer_name, product_name, unit_price, created_at) VALUES( 4, 2009, 10, 28,  'miyamoto',   'Apple L', 3, current_timestamp );
      COMMIT;
      

      Ubuntu 11.04 での実行結果例

    4. 簡単な SQL 問い合わせ

      SELECT * FROM order_records; 
      

      Ubuntu 11.04 での実行結果例

    5. psql を終了したいときは,「\q」と操作する.

      \q
      

    6. PostgreSQL サーバを終了したいときは,「pg_ctl stop」と操作する.

      pg_ctl stop
      

    7. 元のユーザに戻りたいときは,「exit」と操作する.

      exit
      


    ここから下は書きかけ

    サイト構成 連絡先,業績など コンピュータ実習 データの扱い コンピュータ設定 教材(公開) サポートページ
     

    Postgres のインストールと基本設定 (Linux の場合)


    (オプション) Apache ANT のインストール

    JDBC 用に必要なので,Apache ANT のダウンロードページ: http://ant.apache.org/srcdownload.cgi からソースコードを入手.展開して,コンパイル,インストールする.

    インストール

    参考Webページ: http://www.postgresql.jp/PostgreSQL

    Postgres 用アカウント postgres の作成

    参考Webページ: http://www.hizlab.net/app/pgsql.html

    .bashrc の作成

    Postgres 用アカウント pgsql ログインしたときのための .bashrc を作成しておきます.

    su - pgsql
    vi .bashrc
    # $HOME/.bashrcに以下を追加
    -------------------------------------------------
    PATH="$PATH":/usr/local/pgsql/bin
    
    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"
    ---------------------------------------------------
    source .bashrc
    

    Postgres データベース管理者のユーザ名とパスワード

    次の手順で, Postgres データベース管理者のユーザ名 (postgres) とパスワード を設定します(これは pgsql とはべつもの). データベース管理者のユーザ名は postgres, パスワードは pdadminpass として説明するが, パスワードは,必ず適切なものを付けること.

    pgsql ユーザでサーバの起動を行ったのち, createuser コマンドで設定します.

    su - pgsql
    pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/logfile -o "-i" start
    createuser postgres
    # Shall the new role be a superuser? (y/n)
    y
    # 「CREATE ROLE」と表示されることを確認.
    # 次に,psql で,パスワードの設定を行う.パスワードは必ず適切に設定すること
    psql testdb
    alter user "postgres" password 'pgadminpass';
    \q
    #パスワードの確認. 「psql -U postgres testdb 」の後にパスワードを聞いてきたら OK
    psql -U postgres testdb
    \q
    # postgreSQL サーバを止めておく
    pg_ctl stop
    

    次に,/usr/local/pgsql/data/pg_hba.conf ファイルの trust の部分を全て md5 に書換えます. pg_ctl で,再起動します(pg_hba.conf を書き換えたので)

    vi /usr/local/pgsql/data/pg_hba.conf
    # /usr/local/pgsql/data/pg_hba.conf ファイルの trust の部分を md5 に書換えます.
    # 再起動
    pg_ctl stop
    pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/logfile -o "-i" start
    # 起動してエラーメッセージが出ないことを確認し,その後,postgreSQL サーバを止めておく
    pg_ctl stop
    

    (参考) xxx.yyy.zzz.aaa からのアクセスを許可するときは,pg_hba.conf ファイルに次のように記述します.

    host all all xxx.yyy.zzz.aaa 255.255.255.255 trust
    

    (参考) xxx.yyy.zzz.aaa からのアクセスを許可するときは,pg_hba.conf ファイルに次のように記述します.

    host all all xxx.yyy.zzz.aaa 255.255.255.255 trust
    

     

    (参考) pgAdminIII のインストールについて

    pgAdminIII は,PostgreSQL を使うときの定番ツールです.


    参考Webページ: