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//var/postgres/dataがあればそれも
\rm -rf data
postgresユーザーを格上げ
postgresユーザーは既に作成されていた。
普通はサービスを実行する権限を付与するが、XP-HOME Editionなので
とりあえず管理者に格上げしておいた。
postgresユーザーで新たにDBを作成
元の管理ユーザで
cd /varここからはpostgresのcygwinで。
chmod 777 postgresql
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..でもサービスとして登録できるようになったぽいが、サービス起動に失敗した。