質問

マウンテンライオンへの更新後私のPostgres Doestの仕事。それはまだ実行中ですが、私のアプリケーションはもう接続できなくなりました。

$ ps aux | grep postgres
postgres         204   0.0  0.0  2446960    836   ??  Ss    7:31AM   0:00.59 postgres: stats collector process    
postgres         203   0.0  0.1  2478732   2240   ??  Ss    7:31AM   0:00.41 postgres: autovacuum launcher process    
postgres         202   0.0  0.0  2478600    584   ??  Ss    7:31AM   0:00.34 postgres: wal writer process    
postgres         201   0.0  0.0  2478600    784   ??  Ss    7:31AM   0:00.48 postgres: writer process    
postgres          95   0.0  0.0  2446960    368   ??  Ss    7:31AM   0:00.11 postgres: logger process    
postgres          64   0.0  0.2  2478600   7972   ??  Ss    7:31AM   0:00.26 /Library/PostgreSQL/9.1/bin/postmaster -D/Library/PostgreSQL/9.1/data
anezio         10205   0.0  0.0  2432768    624 s000  R+    8:01AM   0:00.00 grep postgres
.

と私のアプリケーションはこのエラーを返しています:

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

私はまだpsqlに接続することができます/ library/postgresql/9.1 / bin/psql -u postgres

は正しい場所を指していないようです

役に立ちましたか?

解決 5

それをアンインストールして再インストールすることでこの問題を解決しました

他のヒント

私は同じ問題を抱えていました。個人的に私はPostgresインストーラ(PostgreSQL-9.1.3-1-osx.dmg)から再インストールし、My Macを再起動し、すべてが再び大丈夫です。P.S.ZAPを再インストールしなかったデータベース:)

使用しているpsqlを確認してください。Herokuの Postgres.app サーバーを使用している間、私は同じ問題を抱えていました。Postgresライブラリを使用するか、インストールされている/usr/bin/psqlへのフルパスを使用するように$PATHを設定します。

デフォルトのUNIXドメインソケットパスはlibpqでハードコードされています。 実行される可能性があるのは、アップグレードの前に、アプリケーションはPostgresワンクリックインストーラによってインストールされたLibpqライブラリを使用したことです。アップグレード後、このライブラリの異なるバージョンがピックアップされました。

問題を回避するには、プログラマの観点から、デフォルトに頼る代わりにソケットディレクトリを指定できます。 正しいディレクトリを見つけている場合は、すでにわからない場合は、スーパーユーザー(一般にPostgres)として任意のデータベースに接続し、SQLの問題:

SHOW unix_socket_directory;
.

は、Connect呼び出しのホストフィールドで取得されたパスでアプリを変更または再設定します(例えば、接続文字列:host=/path/to/socket dbname=d user=u)。LIBPQは、ホスト名またはIPアドレスとは対照的にスラッシュで始まるため、UNIXソケットディレクトリとして認識します。

どういうわけかこのソケットファイルがドットのために隠されることを完全に忘れました。ソケットが実際にそこにあるかどうかを確認している場合は、必ずls -A /tmp/.s.PGSQL.5432を使用してください。

My Postgresアプリは、次のようにした後にPSQLから再度接続を受け入れました。手順3で何があると思います。

  1. Postgresアプリを終了します。
  2. 端末タイプpostgres -D ~/Library/Application\ Support/Postgres/var。Postgresアプリを使用している場合、これはデータディレクトリです。Postgresアプリを使用していない場合は、データディレクトリが本当に何があるかを調べる必要があります。
  3. 入ってくるトラフィックを許可するかどうかを尋ねるOS Xからのプロンプトを取得しました。私ははいをクリックしました。
  4. 別のターミナルタブタイプのpsql。正常に接続する必要があります。
  5. psqlを終了するための\qを入力します。
  6. Postgresを実行しているタブに戻り、Postgresを停止するにはctrl cと入力します。
  7. Postgresアプリを起動します。PSQLは働くべきです。

問題は、マウンテンライオンに搭載されていることです。これは、地元のソケットファイルをインストーラからの異なる場所に検索することでPostgresを接続しようとします。Postgres Binフォルダを最初に含めるか、またはデフォルト/ usr / bin / psqlをインストール上の1つに置き換えるようにパス変数を変更することもできます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top