私は自分の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」に変更しただけで問題なく機能することに注意してください。
何か案が?
コマンド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ユーザーではなくローカルシステムアカウントとしてログオンを設定し、それが機能することを確認します
これが起こったのは、postgres Windowsユーザーアカウントがアクセスできない場所にデータディレクトリを設定したためです。
データベースデータファイルを手動で移動する (PG_DATAディレクトリ)の後で、必要な権限をすべて再作成せずに同じ問題に直面しました。
これが私が私の問題をどのように解決したかです:
cacls "c:\path\to\old\pgdata\dir"
cacls "d:\path\to\NEW\pgdata\dir"
ユーザーや権限の違いを見つけて同期します。
Nota:同期ステップにExplorer
を使用するより、コマンドラインから直接cacls
を使用する。
システムクラッシュ後にWindowsでこの問題が発生しました。最初のコマンドを実行すると、C:\Program Files\PostgreSQL\9.1\data\postmaster.pid
に無効なデータが表示されました。そのファイルを削除することでうまくいきました。 参照
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
ログファイルとWindowsのイベントログで、問題のヒントを確認する必要があります。そこに何もない場合は、プロセスモニターのようなものを取り出して、ハングしている場所のスタックトレースを取得する必要があります。
私は過去にこの問題を抱えていましたが、サービスを実行するユーザーに対して、インストーラーがアクセス許可を正しく設定していなかったことが原因でした。
Windows 7へのPostgreSQL 10のインストール(はい、時計が進んでいます...)。私は最初に、完全にインストールに失敗した最新バージョン11を試してみました... Windowsユーザーには良い兆候ではありません。とにかく。
簡単な回答:Windowsサービスパネルでアカウントをネットワークからローカルに変更します。
私のケースの詳細
インストール中に、ユーザープロファイルフォルダーにデータフォルダーを作成/選択しました。これは、プログラムフォルダー内のデフォルトで推奨されているフォルダーが機能しないためです。機能した場合は、ここにデータを配置することをお勧めします(私はUnix/Linuxでそれを行うのが通常であるかどうかはわかりませんが、Windowsでは長い間許可されていません)。
最後に(データクラスターにデータを入力するときに)エラーを受け取りました。
SQLモジュールをデータベースクラスタにロードできませんでした
しかし、インストールは完了することができました。以前のエラーに関する2つのページ、 here と here が見つかりましたが、それらは私のケースに関連しているようには見えなかったので、pgAdminを開始し、左側の「ブラウザ」で、サーバーがアクティブでないことがわかりました。
ここから開始しようとしましたが(メインパスワードを入力する必要がありました)、すぐに非アクティブになりました。そこで、Windowsのサービスパネルを使用して「postgresql-x64-10」を起動しようとしましたが、うれしくありません。このパネルからコマンドをコピーして、Windowsコンソール(cmd.exe)に貼り付け、最終的にこれを受け取りました
エラー1063。
検索でこの関連する質問が見つかり、問題は権限に関するものであると確信しました。
私のケースで機能するソリューション
サービスパネルで、@ AlexanderRiosのコメントで提案されているように、サービスの開始に使用するアカウントをNetwork ServiceからLocal Systemに変更しました。