実際に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
必要があります。0700
0600
そうでない場合は、次の方法を使用して権限と所有権を変更できます。
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
あなたはその中にいます。
誰かに役立つかもしれません。ただし、サーバーはすでに実行中であるため、問題が異なる可能性があります。