web-dev-qa-db-ja.com

PostgreSQLをWindowsサービスとして実行できません

私は自分のWindowsサービスでこれを行いました:

C:/Program Files/PostgreSQL/8.4/bin/pg_ctl.exe runservice -N "postgresql-8.4" -D "D:/PostgreSQL/8.4/data" -w

実行が完了することはありません。しかし、dos Shellでこれを行った場合:

C:/Program Files/PostgreSQL/8.4/bin/pg_ctl.exe start -N "postgresql-8.4" -D "D:/PostgreSQL/8.4/data" -w

「runservice」を「start」に変更しただけで問題なく機能することに注意してください。

何か案が?

24
David

コマンドrunserviceは、サービスマネージャーのみが実行できます。

localhost windows 7を修正してpostgresをサービスとして開始するために、次のコマンドを使用してデータを開始しました

 pg_ctl -D "C:\Program Files\PostgreSQL\9.1\data" start 

次に、ステータスのエラーを確認しました

 pg_ctl -D "C:\Program Files\PostgreSQL\9.1\data" status 

エラー1063が発生した場合は、その可能性が高い権限で、次のコマンドを実行しました

 cacls "C:\Program Files\PostgreSQL\9.1\data" /E /T /C /G postgres:F

その後、開始/ステータスを再実行しましたが、すべて正常に表示されましたが、サービスマネージャーはサービスを開始しませんでした

したがって、Services-> postgresql-> options-> logonで、postgresユーザーではなくローカルシステムアカウントとしてログオンを設定し、それが機能することを確認します

34
Jay Rizzi

これが起こったのは、postgres Windowsユーザーアカウントがアクセスできない場所にデータディレクトリを設定したためです。

11
pstanton

データベースデータファイルを手動で移動する (PG_DATAディレクトリ)の後で、必要な権限をすべて再作成せずに同じ問題に直面しました。

これが私が私の問題をどのように解決したかです:

1.古いPG_DATAディレクトリの権限を確認します。

cacls "c:\path\to\old\pgdata\dir"

2.新しいPG_DATAディレクトリの権限を確認します。

cacls "d:\path\to\NEW\pgdata\dir"

3. 1.と2.の出力を比較します。

ユーザーや権限の違いを見つけて同期します。

Nota:同期ステップにExplorerを使用するより、コマンドラインから直接caclsを使用する。

6
Stephan

システムクラッシュ後にWindowsでこの問題が発生しました。最初のコマンドを実行すると、C:\Program Files\PostgreSQL\9.1\data\postmaster.pidに無効なデータが表示されました。そのファイルを削除することでうまくいきました。 参照

4
Tom

pg_hba.confを変更した場合、ファイルのどこかを見逃した可能性があります。たとえば、そのファイルにはIPの後にCIDRが必要です。 192.168.1.100/32のようにする必要があります

32を入れるのを忘れた場合、サーバーは再起動しません。

起動ログの調査が手掛かりになる可能性があります。 pg_hba.confに問題がある場合は、次のようになります。

2018-11-13 00:39:34.841 PST [8284] FATAL:  could not load pg_hba.conf
2018-11-13 00:39:34.842 PST [8284] LOG:  database system is shut down
3
onur

ログファイルとWindowsのイベントログで、問題のヒントを確認する必要があります。そこに何もない場合は、プロセスモニターのようなものを取り出して、ハングしている場所のスタックトレースを取得する必要があります。

2
Magnus Hagander

私は過去にこの問題を抱えていましたが、サービスを実行するユーザーに対して、インストーラーがアクセス許可を正しく設定していなかったことが原因でした。

2
Grant Johnson

Windows 7へのPostgreSQL 10のインストール(はい、時計が進んでいます...)。私は最初に、完全にインストールに失敗した最新バージョン11を試してみました... Windowsユーザーには良い兆候ではありません。とにかく。

簡単な回答:Windowsサービスパネルでアカウントをネットワークからローカルに変更します。

私のケースの詳細

インストール中に、ユーザープロファイルフォルダーにデータフォルダーを作成/選択しました。これは、プログラムフォルダー内のデフォルトで推奨されているフォルダーが機能しないためです。機能した場合は、ここにデータを配置することをお勧めします(私はUnix/Linuxでそれを行うのが通常であるかどうかはわかりませんが、Windowsでは長い間許可されていません)。

最後に(データクラスターにデータを入力するときに)エラーを受け取りました。

SQLモジュールをデータベースクラスタにロードできませんでした

しかし、インストールは完了することができました。以前のエラーに関する2つのページ、 herehere が見つかりましたが、それらは私のケースに関連しているようには見えなかったので、pgAdminを開始し、左側の「ブラウザ」で、サーバーがアクティブでないことがわかりました。

ここから開始しようとしましたが(メインパスワードを入力する必要がありました)、すぐに非アクティブになりました。そこで、Windowsのサービスパネルを使用して「postgresql-x64-10」を起動しようとしましたが、うれしくありません。このパネルからコマンドをコピーして、Windowsコンソール(cmd.exe)に貼り付け、最終的にこれを受け取りました

エラー1063。

検索でこの関連する質問が見つかり、問題は権限に関するものであると確信しました。

私のケースで機能するソリューション

サービスパネルで、@ AlexanderRiosのコメントで提案されているように、サービスの開始に使用するアカウントをNetwork ServiceからLocal Systemに変更しました。

0
mins

pgAdmin IIIを開き、右側のペインでサーバーを見つけ、右クリックして接続し、パスワードを入力します。接続後、ブラウザに移動してODOOを更新します。問題が解決しました。

画像を見て理解を深める

enter image description here

0
M Kamran Haider