97

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 のパスワードを変更しようとしていました。いくつかのコマンドを試しましたが、同じエラーが発生しました。サーバーを再起動しましたが、うまくいきません。root としてログインして /var/pgsql_socket を確認しましたが、フォルダーは空です。フォルダー /var/pgsql_socket_alt も空です。

私はこれについてオンラインでチェックしました。ただし、Stack Overflow を含め、私が読んだほぼすべてのソリューションは、PostgreSQL の削除と再インストールを提案しています。わかりませんが、サーバー アプリのいくつかのオプションで PostgreSQL が使用されているため、これは妥当なオプションとは思えません。Apple Enterprise Support に連絡したところ (契約なし)、私の問題は開発者が解決する必要があり、費用は 695 ドルかかると言われました。

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

更新: 2012 年 12 月 13 日 15:33 GMT-6

ps auwx|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

4

20 に答える 20

304

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

export PGHOST=localhost

これは次の理由で機能します。

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

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

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

于 2013-04-25T00:23:34.653 に答える
39

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

$ mkdir /var/pgsql_socket/ 

$ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/
于 2014-08-14T16:19:58.437 に答える
10

Open 'postgresql.conf' in you favourite editor. Look for the variable 'unix_socket_directories', it will most likely look like this:

unix_socket_directories = '/private/tmp/'

Change the line to this:

unix_socket_directories = '/var/pgsql_socket/'

Note if you want the socket files in more than one directory comma separate them.

于 2014-10-09T09:54:56.697 に答える
4

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

postgres が実行されているポートは??

ポート 5432 で実行されていないと思います。そうでない場合は 5432 に変更します

OR 端末使用時

psql -U  postgres -p YOUR_PORT_NUMBER database_name
于 2012-12-13T21:29:24.633 に答える
2

私はこれを行うことによって言葉で作ります:

dpkg-reconfigure locales

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

pg_createcluster 9.5 main --start

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

/etc/init.d/postgresql start

そして、それは言葉です!

sudo su - postgres
psql
于 2016-09-13T09:10:01.423 に答える
1

最初にインストール済みの 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
于 2016-06-03T09:23:03.433 に答える
1
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

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

brew services restart postgresql
于 2017-01-23T12:27:29.577 に答える
1

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

于 2014-11-11T19:41:59.503 に答える
1

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

sudo service postgresql status

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

sudo service postgresql start
于 2018-09-07T06:36:35.390 に答える
1

コンピューターがフリーズして自動的に再起動した後、このエラーが発生しました。私にとっての解決策はこのページでは見つかりませんでしたが、同じエラーpsql: could not connect to server: No such file or directory (Mac OS X)を持つ別の非常に評価の高い SO の質問では見つかりませんでした。答え:このファイルを削除してから、トリックを行いました。これを行う前にpostgresプロセスを強制終了することに関するリンクされた回答の警告に注意してください。そうしないと、データベースが完全に破損する可能性があります。/usr/local/var/postgres/postmaster.pidbrew services restart postgresql

于 2019-05-15T05:03:05.477 に答える
0

Mac OS が所有する Postgres データベースでは、ファイルのアクセス許可が制限されています。これらの権限は、Postgres の再起動または再起動後にリセットされます。たとえば、serveradmin start postgres です。

そのため、パーミッションまたは所有権を一時的にリセットします。

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

アクセス許可のリセットは安全ではないため、ソリューション用に所有しているデータベースのバージョンをインストールしてください。

于 2014-10-14T17:38:20.910 に答える
0

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

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

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

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

于 2012-12-14T12:15:18.400 に答える