2003年10月07日

PostgreSQLインストール~5分レシピ

Windows+Cygwin + PostgreSQL な環境を導入する、険しい道のり。\nそう、少なくとも、おいらのような素人には、大変だった。\n
そんな、けものみち。


【おきて1】\nここでは、デフォルトの以下のフォルダにCygwinが
インストールされているものとする。\n   →Cドライブ直下。\n
 環境が違ったら、適当に読み替えて。\n
【おきて2】\n【手順2】~【手順6】までは、一気に行うこととする。\n目標タイム5分
→「今、ipc-daemonがプロセスにありますか?」なんて、\n いちいち確認しないよぉ。書くのがめんどいのよぉ。\n
【おきて3】\nとにかく、無駄な事はしない。最短距離。いろんなサイトに書いてある
次の事ははぶく。だって、やんなくても動くんだもん。\n ・postgreユーザーをウィンドウズに登録。アンど、それで再ログイン。\n →別にAdminユーザーのまんまで、うごくけど。rootユーザー問題とか、\n Windowsで関係有るの?\n
・あれやこれや、環境変数を登録
→【手順3】で十分。\n
【おきて4】\n面倒でも、Cygwin画面でコマンド!!\n→せっかくPathを通したんだから、コマンドプロンプトで、という気持ちも\n分かる。しかし....→【手順3】コメント参照

【手順1】~\nポストグレのインストール

このバージョン以外は、動作テストしてません!!\n var7.3.2-2

既に上位バージョンがあったら、直ぐ消すのじゃ。\nで、ぽすとぐれ再インストール!!\n

【手順2】\nCygipcをインストールする。\n次のサイトから入手\nhttp://www.neuro.gatech.edu/users/cwilson/cygutils/cygipc/

バージョンは、1.14-1しか動作テストしてません!!\n
ここでは、次のファイルを入手\ncygipc-1.14-1.tar.bz2

入手したファイルを以下のフォルダに保存\nc:\cygwin\usr\src

で、次のコマンド実行。\ntar -jxvf /usr/src/cygipc-1.14-1.tar.bz2 -C /

→わらわらと解凍される。待てしばし。\n
【手順3】\nipc-daemonの実行\n
次のコマンドを実行!!\n
ipc-daemon &

→プロセスipc-daemon起動!!\n起動に成功していたら、タスクマネージャーでも見えるぞぉ。\n
【手順4】\n環境変数「PGDATA」の設定(注3)
次の2つのファイルをつくるのだ。\n既にあれば、以下の記述を加えるのだ。\n
(1)\n.bash_profile [C:\cygwin\home\(-ログインユーザー名-)]に次の
記述を追加する。\n
if [ -f ~/.bashrc ] ; then
source ~/.bashrc
fi

(2)\n.bashrc [C:\cygwin\home\(-ログインユーザー名-)]に次の
記述を追加する。\n
export PGDATA="/usr/local/pgsql/data"


→確認方法\n
echo $PGDATA

とコマンドを実行すると....

/usr/local/pgsql/data

と出力されれば、環境変数の設定は成功している。\n
[注意!!]C:\cygwin\home\(-ログインユーザー名-)が無い...

んなバカな。って、Cygwinインストール直後にPathを通して、\nコマンドプロンプトでるんるんにCygwinコマンドを打っていると
そんな現象が発生したのを確認。そうなんだ....
たしかに、初回起動時に、なんか初期処理みたいなの走ってるね。\n面倒でもCygwin画面からコマンドを打つべし!!\n

【手順5】\nデータベースの初期化\n
次のコマンドを実行\n
initdb -E EUC_JP --locale=NONE

わらわらわら、と次のメッセージが。\nで、次の一文で終わったら成功

Success. You can now start the database server using:

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

うほぉ~\nやっとでましたよ。\n
こんなメッセージだったら、だめ。きっとPostgreとipc-daemonのバージョンの
組み合わせ相性がダメだったんだと、泣くべし。\n
creating template1 database in /usr/local/pgsql/data/base/1... IpcSemaphoreCreat
e: semget(key=1, num=17, 03600) failed: Function not implemented

initdb failed.


【手順6】\npostmasterを開始する。\n次のコマンドを実行\n
pg_ctl start

postmaster successfully started

こんなメッセージが出たらOK。\n
$ LOG: database system was shut down at 2003-09-24 00:11:32
LOG: checkpoint record is at 0/83B1A8
LOG: redo record is at 0/83B1A8; undo record is at 0/0; shutdown TRUE
LOG: next transaction id: 480; next oid: 16976
LOG: database system is ready

(ここで止まる。よく分からんけど、Enterキーを押すと、コマンド入力待ち状態になってくれた。)\n
さらに、とりあえず、一個DBを作る。\n
以下のコマンド実行\ncreatedb test

こんなメッセージが出ればOK
CREATE DATABASE

一応、確かめる。→psql -lコマンド\n

psql -l

こんなメッセージが....
List of databases
Name | Owner | Encoding

Posted by mametanuki at 12:42 | Comments (0)