"psql:サーバーに接続できません。そのファイルまたはディレクトリはありません。"

"psql:サーバーに接続できません。そのファイルまたはディレクトリはありません。"

実際にPostgreSQL 9.4(postGIS拡張を含む)をインストールしましたが、インストール後にすべてがうまくいきました。

多くの人が言ったように、私は/ dataフォルダを設定し、設定ファイルなどを確認しました。別のプロジェクトを進めているので、しばらくpsql作業をしていなかったのですが、インストールが完了するとうまく動作し、テストデータベースを作成し、postgresユーザーを初期化するなどの作業をしました。

今(「デフォルト」postgresユーザーを使用して)psqlを起動しようとしていますが、接続できません!サービスを開始/停止/再起動しても何も変わりません。

"psql"コマンドの結果(postgresユーザーを使用):

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

サービスの状態を確認すると、次のような結果が表示されます。

postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled)
Active: active (exited) since tue 2016-05-24 09:24:13 CEST; 3s ago
Process: 5658 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 5658 (code=exited, status=0/SUCCESS)

コマンドを使用したサービスの開始/停止/再起動

sudo service postgresql start (or restart or stop)

実際のシステムの動作は変わりません。

ログは次のように言います。

DETAIL:  Permissions should be u=rwx (0700).
FATAL:  data directory "/var/lib/postgresql/9.4/main" has group or world access

答え1

Debianシステムでは、postgresqlファイルとディレクトリはuserが所有しpostgres、groupに属し、(ディレクトリ)または(ファイル)権限を持っているpostgres必要があります。07000600

そうでない場合は、次の方法を使用して権限と所有権を変更できます。

sudo chown -R postgres:postgres /var/lib/postgresql/9.4/
sudo chmod -R u=rwX,go= /var/lib/postgresql/9.4/

Xコマンドの大文字に注意してくださいchmod。小文字とは異なり、x実行ビットを設定します。ただディレクトリとファイルすでに実行可能ファイル(pgディレクトリに実行可能ファイルを含めないでください)

次に postgresql サービスを再起動します。

答え2

Postgres サーバーが稼働していると確信している場合は、ホストを localhost として指定してログインしてみてください。 psqlのみを使用すると、ソケットを使用して接続を試みます。

Postgresをアップグレードして以前のサーバーにアクセスし続けたときにこの問題が発生しました。新しいpsqlは混乱しています。

努力する:

psql -U username -h localhost

答え3

postgreSQL13を新しくインストールした後psql(通常のコマンドプロンプトとそれ以降の両方でsudo su - postgres)、同じエラーメッセージが表示されます。

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

知ってみるとサービスもおすすめをいただいたのでサービスを開始しなければなりませんでした。"/var/run/postgresql/.s.PGSQL.5432"に関するエラーが発生した場合は、Postgresにどのようにアクセスしますか?

努力する:

  • sudo systemctl start postgresql(またはenable起動するたびに起動するには、次を参照してください。LinuxでPostgreSQLを起動する) または
  • sudo service postgresql start(たとえば、WSL2では必須)。

それから:

sudo su - postgres
psql

あなたはその中にいます。

誰かに役立つかもしれません。ただし、サーバーはすでに実行中であるため、問題が異なる可能性があります。

関連情報