Windows7にpostgresをインストールし、コントロールパネルからサービスを開始しようとしました。エラー1053が生成されます。
コマンドラインからpostgres.exeを実行しようとすると、次のメッセージが表示されます。
C:\Program Files (x86)\PostgreSQL\9.0\bin>postgres.exe
2011-07-24 14:02:29 IST LOG: could not create file "postmaster.opts": Permission denied
デフォルトのデータディレクトリは
C:\Program Files (x86)\PostgreSQL\9.0\data
PGDATAenv変数を上記のディレクトリに設定しました。
また、そのディレクトリのpg_hba.conf
ファイルを編集して、次のように新しい行を追加しました。
local all postgres ident sameuser
Windowsファイアウォールでpostgresqlサーバーを許可して(プライベートネットワークとパブリックネットワークの両方にチェックマークを付けて)サービスを開始しようとしましたが、問題が解決しない場合は、パブリックネットワークとプライベートネットワークの両方のファイアウォールをオフにしました。
それでもサービスを開始できません。 AVG常駐シールドを無効にしてみました。これらはどれも機能しませんでした。
どうすればいいですか?
更新:
私はこれを試しました:
C:\Program Files (x86)\PostgreSQL\9.0\bin>pg_ctl restart
pg_ctl: PID file "C:/Program Files (x86)/PostgreSQL/9.0/data/postmaster.pid" does not exist
Is server running?
starting server anyway
server starting
C:\Program Files (x86)\PostgreSQL\9.0\bin>2011-07-24 16:12:57 IST LOG: could not create file "postmaster.opts":
まだ運がない。
ログについては、フォルダdata/pg_log
に2つのtxtファイルが見つかりました。これらには、インストール直後のイベントのログが含まれています。後でpostgresを開始しようとしたときのログは含まれていません。私はそれを置きました ここ 。
Windowsイベントビューアで、 http://Pastebin.com/K6jUPPAy のような一連のエラーイベントエントリを取得します。それらのすべてには、次のようなメッセージが含まれています。
2011-07-24 12:46:44 IST FATAL: could not access status of transaction
0 2011-07-24 12:46:44 IST DETAIL: Could not open file
"pg_notify/0000": Permission denied.
他にログがある場合は、どこにあるかを教えてください。
これは推測にすぎませんが、PostgreSQLディレクトリが読み取り専用に設定されている可能性があります。詳しくは この投稿 をご覧ください。
同じエラーが発生しました。私の場合は、posgresqlに割り当てたメモリ(sort_memとshared_buffers)が多すぎて、どういうわけか起動できなかったためです。戻ってposgresql.confを工場出荷時のデフォルトファイルに置き換える必要がありました。
幸運を