Postgres9.2.4をWindows7のサービスとして実行しようとしています。postgresをインストールした後、サービスは正常に実行されていました。ただし、postgresを別のプログラムのサーバーとして設定した後、サービスの実行が停止しました。今すぐサービスを開始しようとすると、次のようなメッセージが表示されます。
「postgresql-x64-9.2-ローカルコンピューター上のPostgreSQLサーバー9.2サービスが開始され、その後停止しました。一部のサービスは、他のサービスまたはプログラムで使用されていない場合、自動的に停止します。」
データベースサーバーを使用する必要があるプログラムを実行しようとすると、次のエラーが発生します。
「本番データベースにログインまたは作成しようとしたときに問題が発生しました。詳細:サーバーに接続できませんでした。リモートソケットに接続できませんでした。アプリケーションを閉じる必要があります。」
同じプログラムを開いているときに、このエラーが発生したこともあります。
「本番データベースにログインまたは作成しようとしたときに問題が発生しました。詳細:致命的:pg_hba.confを読み込めませんでした。アプリケーションを閉じる必要があります。」
ローカルシステムアカウントとしてログオンしたサービスと、自分のアカウント(postgresサービスのプロパティ内)を実行しようとしましたが、役に立ちませんでした。また、コンピューターを再起動してみました。オンラインで多くのトラブルシューティングを行った後、チェックするのが良いことはpg_logファイルであることを学びました。最新のpg_logエントリの内容は次のとおりです。
2013-05-29 14:59:45 MDT LOG: database system was interrupted; last known up at 2013-05-29 14:58:01 MDT
2013-05-29 14:59:45 MDT LOG: database system was not properly shut down; automatic recovery in progress
2013-05-29 14:59:45 MDT LOG: record with zero length at 0/175BB98
2013-05-29 14:59:45 MDT LOG: redo is not required
2013-05-29 14:59:45 MDT LOG: database system is ready to accept connections
2013-05-29 14:59:45 MDT LOG: autovacuum launcher started
2013-05-29 15:07:00 MDT LOG: local connections are not supported by this build
2013-05-29 15:07:00 MDT CONTEXT: line 1 of configuration file "C:/PostgreSQL/data/pg_hba.conf"
2013-05-29 15:07:00 MDT FATAL: could not load pg_hba.conf
2013-05-29 15:07:00 MDT LOG: local connections are not supported by this build
2013-05-29 15:07:00 MDT CONTEXT: line 1 of configuration file "C:/PostgreSQL/data/pg_hba.conf"
2013-05-29 15:07:00 MDT FATAL: could not load pg_hba.conf
2013-05-29 15:09:03 MDT LOG: received fast shutdown request
2013-05-29 15:09:03 MDT LOG: aborting any active transactions
2013-05-29 15:09:03 MDT LOG: autovacuum launcher shutting down
2013-05-29 15:09:03 MDT LOG: shutting down
2013-05-29 15:09:03 MDT LOG: database system is shut down
Pg_hba.confファイルに問題があるようです。これは次のようになります。
local all all trust
Host all all 127.0.0.1 255.255.255.255 trust
Host all all 0.0.0.0 0.0.0.0 trust
オンラインの多くの提案に従って、私はいくつかの異なる選択肢(ホストすべてすべての信頼/ホストすべて127.0.0.1/32信頼/ホストすべて192.168.0.100/24信頼など)にトップラインを編集してみました。ログファイルはローカル接続がpostgresでサポートされておらず、その行を指していると言っていたので、これは私には理にかなっています。しかし、私の変更はどれも効果がありませんでした。変更するたびにコンピューターを再起動しようとしましたが、何の違いもありませんでした。
Pg_hba.confファイルが通常どのように見えるかの例を検索したところ、例は私のファイルとは少し異なって見えました。 PostgreSQLプログラムファイルには、pg_hba.confに加えて、オンラインで見つけた例によく似た「20130529-150444-old-pg_hba.conf」ファイルもあることに気づきました。このファイルには、これらの最後の数行の前に数行のコメントがあります。
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
Host all all 127.0.0.1/32 md5
# IPv6 local connections:
Host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#Host replication postgres 127.0.0.1/32 md5
#Host replication postgres ::1/128 md5
これが元のpg_hba.confファイルであり、新しいファイルを古いファイルの内容に置き換えると、postgresが再び機能し始めることを期待していました。そのような運はありません。以前に述べたエラーが消えたか、別のものに変更されたかどうかを確認するために、pg_logにさらに多くのエラーファイルが記録されることを望んでいましたが、これ以上ファイルは記録されていません。
私は数日間オンラインでトラブルシューティングを行っていますが、何も機能していません。長い質問をして申し訳ありませんが、私は徹底してすべての関連情報を含めたかったのです。誰かがこの問題に光を当てたり、提案をしたりしていただければ幸いです。
ローカルエントリは、Windowsマシンではサポートされていません。 E.20.3.1.3。認証 を参照してください。
Unixソケット接続をサポートしていないプラットフォームでpg_hba.confのローカル行を拒否する(Magnus Hagander)
以前は、そのような行は黙って無視されていましたが、これは驚くべきことかもしれません。これにより、他のサポートされていないケースのように動作します。
構成を次の場所から変更します。
local all all trust
に:
Host all all 127.0.0.1/32 trust
Host all all ::1/128 trust
詳細については、 19.1。pg_hba.confファイル を参照してください。
Postgresqlバージョン8.3をWindows7マシンにインストールした後、この問題が発生しました。最初は正常に動作していましたが、突然停止しました(おそらくWindowsの更新後)。多くの暫定的な権限の変更が行われましたが、それは機能しませんでした。数か月後、空のファイルに問題が見つかりましたが、その間にデータが含まれているはずです。次のパスを確認します:C:\ Program Files(x86)\ Postgresql\8.3\data \(8.3はバージョン番号に置き換える必要があります)。 Postmaster.pidファイルが空かどうかを確認します(ワードパッドまたはメモ帳を使用して開きます)。空の場合は、名前を_Postmaster.pid(または他の名前)に変更します。 [スタート]メニューに移動し、コマンドボックスでservices.mscと入力します。Enterキーを押します。Postgresqlデータベースエントリを見つけます。ダブルクリックします。[スタート]ボタンをクリックします。サービスが開始されると、新しいPostmaster.pidが作成されます(一部のデータを含む)。確認できます。上記のパスで。
イベントビューアの分析から得られた良いヒント:Windowsエクスプローラを開き、[コンピュータ]を選択し、[管理]を右クリックして、[イベントビューア]を選択し、[管理イベントの概要]が読み込まれるのを待って、[エラー]ノードを開き、検索します。 「ソース」列の「PostgreSQL」エントリをダブルクリックします。 Postmaster.pidファイルに偽のデータを通知するヒントがありました。
この情報がお役に立てば幸いです。乾杯!エド。
このような場合、最良の方法はOSログを分析することです。 Windowsの場合は、「イベントビューア」->「アプリケーション」を確認してください。このようなエラーは、さまざまな理由で発生する可能性があります。私の場合、postgresはすでに実行されていました。私はその情報をWindowsログで見つけました。
私も同じ問題を抱えています。私のために働いたのは:
shared_preload_libraries = '$libdir/plugins/plugin_debugger.dll'
)問題は、win7でのこのpostgresバージョンがローカル接続を処理できないことです。ローカルコンピューターで非常に緊急にpgを操作する必要があったため、セキュリティについてあまり気にしなかったため、これはライブ環境に最適なソリューションではない可能性があります。しかし、私のローカルPCはそれで十分でした。
コメントされていない他のすべての行をpg_hba.confから削除し、次の行のみを残しました。
Host all all ::1/0 trust
この後、コマンドライン経由で接続できました。
マニュアルにこの問題が記載されていない理由がわかりません。多くの人がこれに問題を抱えていると私は確信しています。
それで、簡単な免責事項、私は今Linux上でPostgreSQLを実行しています。しかし、数年前、私はそれをWindowsで実行しました。そして、私はこの問題を覚えているようです。手がかりはこの行にあると思います:
2013-05-29 15:07:00 MDT LOG: local connections are not supported by this build
ローカル接続はUnixのものです。 Windowsを使用しています。したがって、「このビルドではサポートされていません」。ローカルをローカルホストに変更して再起動してみてください。これが ここにリンクの説明を入力してください Postgresメーリングリストに投稿された同様の問題へ:
Postgresql.confを間違えました。私はやった
max_prepared_transactions = 16*max_connections # zero disables the feature
このファイルの前にあるところは、
max_connections=100
これは実行できず、次のように機能します。
max_prepared_transactions = 1600 # zero disables the feature
「ローカルコンピュータのサービスが開始されてから停止しました。他のサービスやプログラムで使用されていない場合、一部のサービスは自動的に停止します。」
次に、ローカルコンピュータでサービスを開始してから停止する方法を説明します。他のサービスやプログラムで使用されていない場合、一部のサービスは自動的に停止します。
この問題を解決するには、2つの方法があります
最初の方法
スタート->実行-> Services.mscと入力し、Enterボタンをクリックすると、コンピューター内のすべてのサービスが表示されます。その後、サービスを選択して右クリックし、[プロパティ]に移動します。
その後、[ローカルシステムアカウント]を選択して[ログオンの選択]タブを開き、[OK]をクリックします。問題は解決します。