cygwin+postgresql8の設定

久しぶりになにげなくcygwinをアップデートしたら困ったちゃんなことに。
サービスで登録してたpostgresが動かなくなった。
どうやら7→8でだいぶ構成が変わってしまったらしい。
前はわりといい加減に登録してたので、postgresユーザーで登録しなおしてみることにした。
参考にしたサイトはここ。
http://discypus.jp/wiki/?Cygwin%2FPostgreSQL%2F%A5%E1%A5%E2%2F8.0.4-1

以前登録したサービスを消す

cygrunsrv.exe -R postmaster

古いDATADIRを消す

cd /usr/share/postgresql/
\rm -rf data
/var/postgres/dataがあればそれも

postgresユーザーを格上げ

postgresユーザーは既に作成されていた。
普通はサービスを実行する権限を付与するが、XP-HOME Editionなので
とりあえず管理者に格上げしておいた。

postgresユーザーで新たにDBを作成

元の管理ユーザで

cd /var
chmod 777 postgresql
ここからはpostgresのcygwinで。
runasコマンドがなぜかうまくいかなかったので「右クリック→別のユーザーとして実行」で行った。
initdb --no-locale -D /var/postgresql/data

postgresqlをサービスに登録

cygrunsrv --install postmaster --path /usr/sbin/postmaster \
--args "-D /var/postgresql/data" --dep cygserver --termsig INT \
--user postgres --shutdown

サービスを起動

net start postmaster
とりあえず登録は終わり。次は

DBのユーザー追加

createuser
Enter name of user to add:nantokakantoka
Shall the new user be allowed to create databases? (y/n)y
Shall the new user be allowed to create more new users? (y/n)y
これで普通に使えるようになった。
psql -l
などで確認できる。
ちなみに、
pg_ctl register -U postgres -P password..
でもサービスとして登録できるようになったぽいが、サービス起動に失敗した。