web-dev-qa-db-ja.com

ソケットファイル "/var/pgsql_socket/.s.PGSQL.5432"がMountain Lion(OS X Server)にありません

OS X Serverを使用してMacMini ServerをLion ServerからMountain Lionにアップグレードしました。昨年Lion Serverを最初にインストールしたときと同じPostgreSQLの問題を抱えています。

あらゆる種類のPostgreSQLターミナルコマンドを実行しようとすると、多くの人が長年にわたって得てきた次の悪名高いエラーメッセージが表示されます。

psql: 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"?

エラーが発生したときに、_postgresのパスワードを変更しようとしました。いくつかのコマンドを試しましたが、同じエラーが発生しました。サーバーを再起動しましたが、運はありません。/var/pgsql_socketを見るためにルートとしてログインしましたが、フォルダーは空です。フォルダ/ var/pgsql_socket_altも空です。

これについてオンラインで確認しました。ただし、Stack Overflowを含め、私が読んだほぼすべてのソリューションは、PostgreSQLの削除と再インストールを提案しています。私は知りませんが、Server AppのいくつかのオプションがPostgreSQLを使用しているため、これはもっともらしいオプションとは思えません。 Apple Enterprise Support(契約なし)に連絡したところ、私の問題は開発者が695ドルを投じて解決しなければならないと言われました。

再構築できないため、現在ダウンしているWebサイトがあります。この時点でどこでこれを支援するかわからない。私は何かを見つけることができるかどうかを確認するためにオンラインで探し続けます。ただし、データベースを再構築できるように、誰かがすぐに答えてくれることを願っています。

更新:2012/12/13 15:33 GMT-6

Ps auwwx | grep postgの出力は次のとおりです。

_postgres      28123   0.0  0.1  2479696   7724   ??  Ss    3:01PM   0:00.04 /Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D /Library/Server/PostgreSQL For Server Services/Data -c listen_addresses= -c log_connections=on -c log_directory=/Library/Logs/PostgreSQL -c log_filename=PostgreSQL_Server_Services.log -c log_line_prefix=%t  -c log_lock_waits=on -c log_statement=ddl -c logging_collector=on -c unix_socket_directory=/Library/Server/PostgreSQL For Server Services/Socket -c unix_socket_group=_postgres -c unix_socket_permissions=0770
server1        28216   0.0  0.0  2432768    620 s000  R+    3:02PM   0:00.00 grep postg
_postgres      28138   0.0  0.0  2439388    752   ??  Ss    3:01PM   0:00.01 postgres: stats collector process                           
_postgres      28137   0.0  0.0  2479828   1968   ??  Ss    3:01PM   0:00.00 postgres: autovacuum launcher process                           
_postgres      28136   0.0  0.0  2479696    544   ??  Ss    3:01PM   0:00.00 postgres: wal writer process                           
_postgres      28135   0.0  0.0  2479696    732   ??  Ss    3:01PM   0:00.01 postgres: writer process                           
_postgres      28134   0.0  0.0  2479696    592   ??  Ss    3:01PM   0:00.00 postgres: checkpointer process                           
_postgres      28131   0.0  0.0  2439388    368   ??  Ss    3:01PM   0:00.00 postgres: logger process 

更新:2012/12/13 18:10 GMT-6

激しいウェブ検索の後、このビデオが見つかりました。 PostgreSQLを動作させ、エラーを取り除くことができました。 pgadminとphppgadminを使用して接続できます。欲求不満のため、私はLion Serverに戻ろうとしていました。今、私はする必要はありません。

http://www.youtube.com/watch?v=y1c7WFMMkZ4

エラーを防ぐために、次を.bash_profileに追加できました。

export PGHOST=localhost

これは動作します 理由

ホスト名を省略すると、psqlはUnixドメインソケットを介してローカルホスト上のサーバーに接続するか、TCP/IPを介してUnixドメインソケットを持たないマシンのローカルホストに接続します。

ご使用のOSはUnixドメインソケットをサポートしていますが、psqlが必要とするPostgreSQLのUnixソケットは存在しないか、予想とは異なる場所にあります。

ホスト名を明示的にlocalhostとして指定すると、psqlにTCP/IPを強制的に使用させます。環境変数PGHOSTを設定することは、そのための方法の1つです。 psqlのマニュアル に文書化されています。

283
mmasters

コンソールに貼り付けてみてください:

$ mkdir /var/pgsql_socket/ 

$ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/
33
Bryan Algutria

PostgreSQLホストアドレスを空白のままにするのではなく、127.0.0.1を入力するだけで解決できました。 (ジャンゴの例)

DATABASES = {
    'default': {
        'ENGINE': 'Django.db.backends.postgresql_psycopg2',
        'NAME': 'database_name',
        'USER': 'database_user',
        'PASSWORD': 'pass',
        'Host': '127.0.0.1',
        'PORT': '',
        }
}
23
Nick Woodhams

お気に入りのエディターで「postgresql.conf」を開きます。変数 'unix_socket_directories'を探します。ほとんどの場合、次のようになります。

unix_socket_directories = '/private/tmp/'

行を次のように変更します。

unix_socket_directories = '/var/pgsql_socket/'

複数のディレクトリにあるソケットファイルをコンマで区切る場合は注意してください。

10
Craig Thomas

コメントで他の人が述べたように、この問題に対する本当に簡単な解決策は、データベース構成内でデータベース「ホスト」を宣言することです。これを読んでいる人にとってわかりやすくするために、この答えを追加します。

たとえば、RubyアプリのRailsでは、/ config/database.ymlを編集します。

development:
  adapter: postgresql
  encoding: unicode
  database: database_name
  pool: 5
  Host: localhost

注:ホストを指定するために追加された最後の行。 Yosemiteに更新する前に、この方法でホストを指定する必要はありませんでした。

これが誰かを助けることを願っています。

乾杯

7
David Battersby

より簡単なソリューション( http://daniel.fone.net.nz/blog/2014/12/01/fixing-connection-errors-after-upgrading-postgres/ に感謝)。私はpostgres 9.4にアップグレードしました。私の場合、必要なことはすべて(グーグルで成功しなかった1日後)

gem uninstall pg
gem uninstall activerecord-postgresql-adapter
bundle install

Webrickを再起動してください!

5
Jan Gerritsen

データベースのステータスを確認します。

service postgresql status

データベースが実行されていない場合は、dbを起動します。

Sudo service postgresql start
5
Sivakumar R.J

Postgresql.confファイルを確認できますか?

Postgresが実行されているポートは何ですか??

私はそれがポート5322で実行されていないと思います

または端末使用時

psql -U  postgres -p YOUR_PORT_NUMBER database_name
4
Hunter

Djangoでこの問題が発生しました。

ホスト名を明示的に「localhost」に設定して修正します。

2

私はこれを行うことでWordで作成します:

dpkg-reconfigure locales

好みのロケールを選択します

pg_createcluster 9.5 main --start

(9.5はpostgresqlの私のバージョンです)

/etc/init.d/postgresql start

それからWord!

Sudo su - postgres
psql
2
mymusise
psql: 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"?

上記のエラーを取得し続けたが、上記の解決策はどれも役に立たなかった。最後に、次の解決策がMac OS Xでの私の問題を解決しました

Brewを使用してpostgresをインストールする

brew install postgres

醸造サービスをインストールする

brew tap homebrew/services

Postgresをバックグラウンドサービスとして開始するには

brew services start postgresql

Postgresを手動で停止するには

brew services stop postgresql

醸造サービスを使用してPostgresを再起動することもできます

brew services restart postgresql
1
Sudharshan

上記の問題はあるが、Yosemiteからアップグレードした場合は、アップグレードソリューションがいくつかのファイルを破壊する可能性があるため、別のアプローチが必要です。詳細は `pg_tblspc`がOS Xの最新バージョン(YosemiteまたはEl Capitan)のインストール後に欠落しています にあります。

1
Obromios

次のコードでpostgresサーバーが実行されていることを確認してください

Sudo service postgresql status

postgresサーバーが非アクティブの場合、次のコマンドを記述します。

Sudo service postgresql start
1
wailinux
apt-get install postgres-xc-client
apt-get install postgres-xc
1
angela

最初に、インストールされているpostgresを削除します。

Sudo apt-get purge postgr*
Sudo apt-get autoremove

次に、「シナプス」をインストールします。

Sudo apt-get install synaptic
Sudo apt-get update

次に、Postgresをインストールします

Sudo apt-get install postgresql postgresql-contrib
0
Gurudath BN

私はちょうど新しいクラスターを作成し、それは私のために働いた、私は(PostgreSQL)9.3.20を使用していました:

Sudo pg_createcluster 9.3 main --start
0

ファイル許可は、Mac OSが所有するPostgres dbでは制限されています。これらの権限は、再起動後、またはPostgresの再起動後にリセットされます。 serveradminはpostgresを起動します。

そのため、許可または所有権を一時的にリセットします。

Sudo chmod o+rwx /var/pgsql_socket/.s.PGSQL.5432
Sudo chown "webUser"  /var/pgsql_socket/.s.PGSQL.5432

権限のリセットは安全ではないため、ソリューション用に所有しているバージョンのdbをインストールしてください。

0
clewis

コンピューターがフリーズし、自動的に再起動した後、このエラーが発生しました。私のための解決策はこのページではなく、別の非常に高い評価SOの質問と同じエラーで見つかりませんでした psql:サーバーに接続できませんでした:そのようなファイルまたはディレクトリはありません(Mac OS X) 。答え:このファイル/usr/local/var/postgres/postmaster.pidを削除してから、brew services restart postgresqlがトリックを行いました。これを行う前にpostgresプロセスの強制終了に関するリンクされた回答の警告に注意してください。

0
wetjosh

しばらく時間がかかりましたが、提示された提案と追加のWeb検索を行った後、最終的にこの機能を動作させることができました。 Mactasiaが作成した次のYouTubeビデオの情報を使用しました。

http://www.youtube.com/watch?v=y1c7WFMMkZ4

これを行ったとき、拡張子が.lockのファイルを見ました。ただし、PostgreSQLを使用してRailsアプリケーションでの作業を再開したときに、Railsサーバーを起動しようとすると、エラーが発生します。今回は、許可拒否エラーが発生しました。これは、plistのlisten_addressesを変更する必要があるだけでなく、unit_socket_permissionsを0777に変更する必要があることを思い出したときです。また、rootとしてログインして、ユーザーレベル。 Postgresは現在正常に動作しています。 SQLバックアップからデータを再読み込み中です。

私が理解できなかったのは、Wikiを有効にしたときに、PostgreSQLがSudo serveradmin fullstatus postgresを実行したときにおそらく動作していたが、それでもエラーが発生することでした。しかたがない。