web-dev-qa-db-ja.com

Postgresサーバーが起動しない

私のpostgresは以前は機能していましたが、何らかの理由で機能しなくなりました。私はスタックオーバーフローや他のサイトでいくつかの異なる検索を試してみましたが、同じ結果が得られ、同じページを何度も何度も読んだ後、成功せずに、新しい質問を投稿するときがきました。

ローカルホストでmy Railsプロジェクトを実行しようとすると、次のエラーメッセージが表示されます。could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

ps -fu postgresからの次の出力が示すように、サーバーはまったく実行されていません。

postgres 23969 23968 0 09:54 pts/25 00:00:00 -bash

取得しているエラーメッセージ:

  • 「postgres」ユーザーとして実行している場合、psqlを実行すると次のようになります。

psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

  • Postgresを起動しようとすると:

私が試した他のこと:

  • postgres -D /usr/local/pgsql/data >logfile 2>&1 &を実行すると( official documentation に示されているように)出力:[1] 24670しかし、サーバーはまだ実行されていません。

  • また、service postgres startを介してサーバーを起動してみました。これにより、ユーザーとして認証するためのパスワードが要求されます(Authentication is required to start 'postgres.service'.と表示されます)。ログインは成功しますが(==== AUTHENTICATION COMPLETE ===)、その後Failed to start postgres.service: Unit postgres.service not found.と表示されます

  • 私はサーバーを再起動してみました(以下の Sudo /etc/init.d/postgresql restartを使用してこれらの指示 を実行)。これは過去にpostgresを修正していましたが、今は単にRestarting postgresql (via systemctl): postgresql.service.サーバーを再起動してみてください。変更はありません。

  • 問題は、削除する必要があるpostmaster.pidファイルではないようです。このユーザーが行ったのと同じプロセス を実行した後Sudo find / -name .s.PGSQL.5432 -lsを実行しても何も見つかりませんでした

  • クリーンインストールを試しましたが、それでも機能しません。何も変更されておらず、同じエラーメッセージが表示されています。

Postgresを削除した後(以下の これらの手順 に従って)、 デジタルオーシャンチュートリアル を実行して「 psql "と入力して、すぐにPostgresプロンプトにアクセスします。

その他の考えられる要因:(私は私の機知の終わりにいるので、頭に浮かぶ可能性のあるあらゆる要因をリストしています)

  1. Ubuntu Xenial(16.04)とpostgresql 9.5を実行しています
  2. 最近引っ越して、新しいインターネットプロバイダーを使用しています。これが問題になる理由はわかりませんが、他の設定を変更する必要がありました(具体的には、localhost:3000の代わりにmy Railsプロジェクトをローカルにデプロイするには、inetを使用していました) addr。言い換えると、「http://:3000」(ifconfigによってinetに提供される番号)ですが、新しいインターネットプロバイダーに移動した後、inet addrが変更されました。
  3. [更新]ログファイル:

LOG: could not bind IPv4 socket: Cannot assign requested address HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry. WARNING: could not create listen socket for "localhost" FATAL: could not create any TCP/IP sockets

この時点で、私は数時間を費やして無駄になりました...助けてください!!

4
RyanQuey

/ etc/hostsファイルは、以前にそのファイルにいくつかの変更があったため、正しく構成されていませんでした。すぐに問題が発生することはありませんでしたが、何らかの理由でファイルをデフォルト(つまり、ローカルホストの場合は127.0.0.1、マシンの場合は127.0.1.1)に戻すことで問題が解決しました。

これは、netstat -tulpn | grep :5432を実行して発見され、次のエラー出力が表示されました:Sudo: unable to resolve Host <my_machine>。これは、/ etc/hostsファイルに問題があったことを示しています。

役立つリソースについては、 このリンク を参照してください。

0
RyanQuey