PSQLはサーバーに接続できませんでした:そのようなファイルまたはディレクトリはありません、5432エラー?


114

psqlVagrantマシンで実行しようとしていますが、次のエラーが発生します。

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

注:Vagrant 1.9.2 Box:ubuntu / trusty64、https://atlas.hashicorp.com/ubuntu/boxes/trusty64

postgresをインストールして実行するために使用した編集コマンド:

  • sudo apt-get update
  • sudo apt-get install postgresql
  • sudo su postgres
  • psql -d postgres -U postgres

1
これは私のために働いた答えでした:askubuntu.com/a/824325/733901
ブルーノルーベムアゼレド

回答:


156

私のpg_hba.confファイル(にあります/etc/postgresql/9.6/main)の構成に関連して、これと同じ問題が発生しました。9.6が私が使用しているpostgresqlバージョンであることに注意してください。

エラー自体はpostgresqlの設定ミスに関連しており、サーバーが起動する前にクラッシュします。

これらの指示に従うことをお勧めします:

  1. postgresqlサービスが実行されていることを証明します。 sudo service postgresql start
  2. pg_lsclusters端末から実行
  3. 実行しているクラスターを確認してください。出力は次のようになります。

    バージョン-クラスターポートステータス所有者データディレクトリ

    9.6 ------- main-5432 online postgres /var/lib/postgresql/9.6/main

    '---'記号は整列のためにのみ使用されているため、無視してください。重要な情報は、バージョンとクラスターです。また、ステータス列でサーバーが実行中かどうかを確認することもできます。

  4. バージョンとクラスターから情報をコピーし、次のように使用します。 pg_ctlcluster <version> <cluster> startしたがって、私の場合、バージョン9.6とクラスター 'main'を使用すると、次のようになります。pg_ctlcluster 9.6 main start
  5. 何か問題がある場合、postgresqlはにアクセスできるログを生成する/var/log/postgresql/postgresql-<version>-main.logため、私の場合、完全なコマンドはになりますsudo nano /var/log/postgresql/postgresql-9.6-main.log
  6. 出力には、エラーの内容が表示されます。

    2017-07-13 16:53:04 BRT [32176-1] LOG: 無効な認証方法 "all"
    2017-07-13 16:53:04 BRT [32176-2] CONTEXT:構成ファイルの行90 "/ etc /postgresql/9.5/main/pg_hba.conf "
    2017-07-13 16:53:04 BRT [32176-3]致命的:pg_hba.confをロードできませんでした

  7. エラーを修正し、postgresqlサービスを再起動しsudo service postgresql restartます。問題はありません。

私はこれを見つけるためにたくさん検索しました、クレジットはこの投稿に行きます。

がんばって!


1
優れたガイド。包括的な説明がいっぱい!
SalathielGenèse19年

37

私は同じ問題を抱えていましたが、ここでの答えのどれも役に立ちませんでした。

修正方法(mac)

  • postgresqlを起動してみてください pg_ctl -D /usr/local/var/postgres start
  • のようなエラーメッセージを探しFATAL: could not open directory "pg_tblspc": No such file or directoryます。
  • 不足しているディレクトリを作成します mkdir /usr/local/var/postgres/pg_tblspc
  • 不足しているすべてのディレクトリを作成するまで、手順1から繰り返します
  • その後、PostgreSQLの起動しようとすると行われ、再びそれがかもしれないと言いますFATAL: lock file "postmaster.pid" already exists
  • postmaster.pidを削除します。rm /usr/local/var/postgres/postmaster.pid
  • postgresを次のように開始します。 pg_ctl -D /usr/local/var/postgres start
  • 完了✨

13

私はこの質問を見つけたときのように、途方に暮れ、希望が持てない人のためにこれを投稿しています。いくつかのpsotgresql関連の設定ファイルを編集することにより、ファイルの権限を誤って変更する可能性があるようです:

ここに画像の説明を入力してください

pg_hba.confがrootにどのように属しているかに注意してください。ユーザーはそれを読み取ることさえできません。これにより、postgresがこのファイルを開くことができなくなり、サーバーを起動できなくなり、元の質問で見られたエラーがスローされます。

実行することにより

sudo chmod +r pg_hba.conf

私はこのファイルをpostgresユーザーが再びアクセスできるようにし、実行した後

sudo service postgresql start

サーバーを再度実行することができました。


はい、これは私の問題であり、これはログで指摘されていませんでした(またはそれが私がそれとして理解していなかった場合)。
EAmez

私に何が起こったのか正確にはわかりませんが、何らかの理由でNETWORK SERVICEがディレクトリ構造全体への書き込み権限を失いました。この答えは私を正しい方向に向け、それゆえ賛成票を投じました。
Brad Mathews

5

/etc/postgresql/9.6/main/postgresql.confそのポートが割り当てられていることを示していますか?私が覚えていることができますが、私が言ったことと同じファイル内の行からコメントをしたとして、私のデフォルトのXubuntu Linuxのインストールでは、鉱山は最高として、何らかの理由でポート= 5433を示したlisten_addresses = 'localhost'と行をコメント解除しましたlisten_addresses = '*'。だから多分そこから始めて確認してください。お役に立てば幸いです。


4

コマンドを使用:

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

9
これはデータベース全体を削除しませんか?警告の言葉が秩序だったと思います。
d33tah

1
@Tucker Wattsと@Gaurav Vermaに感謝します。私は両方の解決策を試して問題を解決し、このコマンドを追加しましたpg_ctl -D /usr/local/var/postgres -l logfile start
ニヨンガボ

4

これは私にとってはうまくいきます:

pg_ctl -D /usr/local/var/postgresql@9.6 stop;
brew services stop postgresql@9.6;
brew services start postgresql@9.6;

4

次の2つの手順でMacで問題が解決しました。

rm /usr/local/var/postgres/postmaster.pid
brew services restart postgresql

編集:

この問題に直面した場合(@ luckyguy73による報告): psql: FATAL: database "postgresql" does not exist

あなたは走ることができます

brew postgresql-upgrade-database

それを修正します。


おかげで、私はあなたの指示に従うことによって致命的なものに接続できませんから行きました: "psql:FATAL:データベース" postgresql "は存在しません"
luckyguy73

変だな、これはいつも私にとってはうまくいく。なんとか解決しましたか?
nicodp

心配する必要はありません。私はちょうど走った「BREWのpostgresql-データベースをアップグレード」とトリック、感謝なかったこと
luckyguy73を

1
修正してくれてうれしい!他の誰かが同じ問題に直面した場合に備えて、問題がなければ回答にも追加します。ありがとう
nicodp

3

zsh内:

rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

これは、数え切れないほどの時間のトラブルシューティングの後、私のために働いた唯一のものです。


2

データベースマネージャーを開き、このスクリプトを実行します

update pg_database set datallowconn = 'true' where datname = 'your_database_name';

2

/etc/hostsファイルで何かを変更したのと同じことが私にも起こりました。それを元に戻した後127.0.0.1 localhost、私にとってはうまくいきました。


2

直接バージョンのsudo apt-get install postgresql-9.5でpgsqlを再インストールするだけです(新しいパッケージをインストールする前にパッケージを削除する必要があります)


2

私は実行することで問題を解決することができました:

sudo systemctl start postgresql@9.5-main

sudo systemctl start postgresql@12-main私のために働いた
パーサー

2

私の場合postmaster.id、問題の原因となった最後のシステムクラッシュ中に適切に削除されなかったのはロックファイルでした。で削除してsudo rm /usr/local/var/postgres/postmaster.pidPostgresを再起動すると、問題は解決しました。


1

VMでSQL dbを作成すると、同じエラーが発生しました。/etc/postgresql/9.3/main/postgresql.confのデフォルト値をshared_buffers = 200MB合計RAMの75%に変更しました。まあ、実際にはそのRAMをVMに割り当てるのを忘れていました。新しいデータベースを作成するコマンドを実行すると、同じエラーが発生しました。

電源がオフになり、赤ちゃんにボトル(RAM)とプレストが与えられ、機能しました。


1

最後のpg_basebackupバックアップファイルからデータベースを復元したときに、このエラーが発生しました。その後、データベース(psql)に接続しようとすると、同じエラーが発生しました。エラーは解決されました。pg_hba.confファイルを更新すると、「ピア」認証があったところに「md5」に置き換え、postgresサービスを再起動しました。その後、問題は解決しました。



1

このエラーは、Mac miniが接続されていない(強制的にシャットダウンされた)後、私に起こりました。


1

postgresのポートを明確にすることをお勧めします。私の場合、どのポートでpostgresが実行されているのかわかりませんでした。

lsof -i | grep 'post'

そうすれば、どのポートがリッスンしているかを知ることができます。

psql -U postgres -p "port_in_use"

ポートオプションで、答えかもしれません。あなたはpsqlを使うことができます。


1

私は時々同じ問題を抱えていますが、ほとんどがmacOSのアップグレード後です。シャットダウンして新しいバージョンに移行すると、通常は修正されます(バージョンに応じて変更します)。したがって、最初にpostgresqlをアップグレードします

brew services stop postgresql@12
brew services start postgresql@12
brew postgresql-upgrade-database

これは主に一時的な修正ですが、より良い解決策を見つけることができなかったため、これでうまくいきます。


brew postgresql-upgrade-databaseは、他のすべてを試した後、私にとって最終的に機能したものです
luckyguy73

1

上記のどれでもうまくいかない場合は、これを試してください。

多くの人々がこの問題に対する多くの解決策について言及しています!しかし、それらのすべてがそれを忘れていた、同じ問題は、ディスクに十分なスペースがない場合、または割り当てられたスペースpostgresがいっぱいの場合に発生します

システムのストレージをチェックして、空き容量が十分にある場合は空き容量を確認してください。その後で、あなたのPostgresを再起動sudo service postgresql restartまたは停止を行うと、起動sudo service posgresql stop後、sudo service postgresql start

これは問題を解決します、それは私のために解決しました


0

Macのpostgres 11でも同じ問題があります。再起動後に毎回このエラーが発生します

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

一時的な修正として

brew services stop postgresql@11
brew services start postgresql@11
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.