最初に「ポート ファイルが正しい用語ではない」場合はお詫びしますが、Postgres は私の長所の 1 つではありません。私のシステムから行方不明になったように見えるので、このポートファイルがどのように見えるべきかを見つけようとしています。説明と私の(かなり間違っている可能性がある)思考の軌跡を読んでください。
Railsプロジェクトで(postgres gemを介して)Postgresを使用していますが、HTMLの更新中に動作を停止した昨日まで正常に動作していました。通常の方法でレールサーバーを再起動しました
レールS
取得するためだけに:
/Users/pedr/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.2.1/lib/active_record/connection_adapters/postgresql_adapter.rb:1161:「初期化」: サーバーに接続できませんでした: いいえそのようなファイルまたはディレクトリ (PG::Error) \n \n
サーバーはローカルで実行されており、Unix ドメイン ソケット "/tmp/.s.PGSQL.5432" で接続を受け入れていますか?
私はLunchyを使用してpostgresを開始および停止していますが、問題はないようです。
ただし、次のターミナル コマンドを使用して、Postgres がリッスンしているポートを確認しました。
sudo lsof -p 286| awk '$5 == "unix" && $NF ~ /\// { print $NF }'
そして、それは何もリストしません。だから、どういうわけかポートが削除されたと思います。
ポートについての理解が限られているため、次の場所でポート ファイルを探す必要があります。
/tmp/.s.PGSQL.5432
次のファイルがあります。
.s.PGSQL.5432.ロック
私が理解している限り、このファイルは欠落しているポートファイルの編集を防ぎます。
Time Machine を使用してこの見つからないファイルを見つけようとしましたが、Time Machine は /tmp ディレクトリに何も保存していないようです。
では、どうすればこのファイルを再作成できますか? それはどのように見えるべきですか?
[アップデート]
@wildplasser の提案に応えて:
次を使用して postgres が実行されているかどうかをテストします。
ps補助 | grep postgres
私を取得します:
633 0.0 0.0 2442564 392 ?? Ss 9:23am 0:00.09 postgres: 統計収集プロセス 632 0.0 0.0 2446480 1516 ?? Ss 9:23am 0:00.09 postgres: autovacuum launcher プロセス 631 0.0 0.0 2446348 520 ?? Ss 9:23am 0:00.32 postgres: wal ライター プロセス 630 0.0 0.0 2446348 580 ?? Ss 9:23am 0:00.48 postgres: ライター プロセス 520 0.0 0.1 2446348 3640 ?? S 9:22am 0:00.33 /usr/local/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log myusername 1187 0.0 0.0 2434892 540 s000 S+ 10:35am 0:00.00 grep postgres
Unix ドメイン ソケットが実行されているかどうかをテストします。
ls -l /tmp/ | grep PGSQL | grep -v grep
まったく何も得られません。
postgres はインターネット プロトコルのローカルホストをリッスンしていますか?
psql -H ローカルホスト
私を取得します:
psql: 致命的: データベース "localhost" が存在しません
postgres は Unix ドメインソケットをリッスンしていますか?
psql -H /tmp/.s.PGSQL.5432
私を取得します:
psql: 致命的: データベース "/tmp/.s.PGSQL.5432" が存在しません