Postgresはサーバーに接続できませんでした


416

brew updateとbrew upgradeを実行した後、私のpostgresに問題が発生しました。postgresをアンインストールして再度インストールしようとしましたが、うまくいきませんでした。

これはエラーメッセージです(rake db:migrateを実行しようとしたときにもこのエラーメッセージが表示されました)。

$ psql
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

どうすれば解決できますか?

Mac版:マウンテンライオン。

自作バージョン:0.9.3

postgresバージョン:psql(PostgreSQL)9.2.1

そして、これは私がやったことです。

12:30 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.2.1...
12:31 ~/D/works$ brew uninstall postgresql
Uninstalling /usr/local/Cellar/postgresql/9.1.4...
12:31 ~/D/works$ psql --version
bash: /usr/local/bin/psql: No such file or directory
12:33 ~/D/works$ brew install postgresql
==> Downloading http://ftp.postgresql.org/pub/source/v9.2.1/postgresql-9.2.1.tar.bz2
Already downloaded: /Library/Caches/Homebrew/postgresql-9.2.1.tar.bz2
......
......
==> Summary
/usr/local/Cellar/postgresql/9.2.1: 2814 files, 38M, built in 2.7 minutes
12:37 ~/D/works$ initdb /usr/local/var/postgres -E utf8
The files belonging to this database system will be owned by user "laigary".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default text search configuration will be set to "english".

initdb: directory "/usr/local/var/postgres" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/usr/local/var/postgres" or run initdb
with an argument other than "/usr/local/var/postgres".
12:39 ~/D/works$ mkdir -p ~/Library/LaunchAgents
12:39 ~/D/works$   cp /usr/local/Cellar/postgresql/9.2.1/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
12:39 ~/D/works$   launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
homebrew.mxcl.postgresql: Already loaded
12:39 ~/D/works$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
12:39 ~/D/works$ env ARCHFLAGS="-arch x86_64" gem install pg
Building native extensions.  This could take a while...
Successfully installed pg-0.14.1
1 gem installed
12:42 ~/D/works$ psql --version
psql (PostgreSQL) 9.2.1
12:42 ~/D/works$ psql
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

現在、howbrewを再インストールした後、を使用すると$ psql、エラーメッセージが表示されません。

しかし、私rake db:migrateは私のRailsアプリで実行します、それは示しています:

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"?
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213:in `connect'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in `initialize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:309:in `new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:319:in `checkout_new_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:241:in `block (2 levels) in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `loop'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:236:in `block in checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:233:in `checkout'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:96:in `block in connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_pool.rb:404:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:170:in `retrieve_connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/abstract/connection_specification.rb:144:in `connection'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:107:in `rescue in create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:51:in `create_database'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (3 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/gems/1.9.1/gems/activerecord-3.2.8/lib/active_record/railties/databases.rake:40:in `block (2 levels) in <top (required)>'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `call'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:205:in `block in execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:200:in `execute'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:158:in `block in invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:151:in `invoke_with_call_chain'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/task.rb:144:in `invoke'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:116:in `invoke_task'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `each'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:88:in `top_level'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:66:in `block in run'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
/usr/local/Cellar/ruby/1.9.3-p327/lib/ruby/1.9.1/rake/application.rb:63:in `run'
/usr/local/bin/rake:32:in `<main>'
Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"riy_development", "pool"=>5, "username"=>nil, "password"=>nil}

最後に私は解決策を見つけます。

$ sudo mkdir /var/pgsql_socket/
$ sudo ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/

このソリューションは少しトリッキーですが、機能します。誰かがより良い解決策を持っていることを願っています

更新

これは私にも有効です。

rm /usr/local/var/postgres/postmaster.pid

3
私はまったく同じ問題を抱えていますが、あなたの解決策はうまくいきませんでした。これは権限の問題だと思いますが、修正するためのファイル権限の知識がありません。
ajbraus 2013

Homebrew経由でPGをインストールして問題が発生している人のために、別の答えを見つけました。pg gemをアンインストールし、Homebrew configsで再インストールするだけです。stackoverflow.com/a/19609228/1072058で回答を参照してください。
zquintana 2013年

ここでは同様の答え- stackoverflow.com/questions/13573204/...
VelLes

1
postgresを起動します。
atw

4
次のコマンドを使用して、既存のものを新しいバージョンにアップグレードします brew postgresql-upgrade-database

回答:


799

同様の問題がありました。pidファイルがpostgresの起動をブロックしていました。修正するには:

rm /usr/local/var/postgres/postmaster.pid

そして、すべてが順調です。


4
これは、更新/再起動時にこの問題が発生した後、OSX Mavericksで私にとってはうまくいきました。
eprothro 2013

3
@jstaffordありがとう、私はすでに解決しました!:)解決策は、homebewを介してアンインストールし、すぐにコンピューターを再起動することでした。そうすれば、postgresを再インストールできます。古いバージョンがバックグラウンドで実行されていて、postgresを再インストールしようとするたびにファイルが作成され、競合が発生しました。
betoharres 2014年

199
これはマーベリックスでは私にとってはrm: /usr/local/var/postgres/postmaster.pid: No such file or directory
うまくいき

16
これは私にとってはうまくいきました。#にpg_ctl -Dは/ usr / localの/ var / postgresの-l /usr/local/var/postgres/server.log開始
リカルド・カスタネダ

12
私は確かに、これは実際に問題であることを確認するために、サーバーログを尾行をお勧めします:tail /usr/local/var/postgres/server.log
ジョシュBodah

255

これは、postgresのアップグレードで問題になることがあります。

私の場合、9.3から9.4にアップグレードするときに発生しました。

http://www.postgresql.org/docs/9.4/static/upgrading.htmlを参照してください

OS X / Homebrew:

実行してみてくださいpostgres -D /usr/local/var/postgres-postgresが起動に失敗した場合、より詳細な出力が得られます。

私の場合、実行するrm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8と古いデータベースが削除され、postgres dbスキーマが再初期化されました。

そのソリューションを提供してくれたhttps://github.com/Homebrew/homebrew/issues/35240に感謝します

(を使用してrake db:create)データベースを再生成した後、すべてが再び正常に動作しました。


1
これは、ヨセミテに自家製のpostgresをインストールした私にとってはうまくいきました。
cpursley 2015

7
実行中にpostgres -D /usr/local/var/postgresデータディレクトリが古い互換性のないバージョンのPostgresで初期化されていて、ローカルデータを失いたくない場合このスレッドを
Nathan Long

上記のコマンドが実行された後、私は実行しました。pg_ctl -D /usr/local/var/postgres -l logfile startそれから私のサーバーはバックグラウンドで起動しました
Tommyixi

5
brew services start postgres代わりにOSXで使用して、postgresをバックグラウンドで開始するpostgres -D /usr/local/var/postgres
Mike Andrianov

1
私は同じ問題を持っていて、ここでの指示でそれを固定@coffekid:stackoverflow.com/questions/24379373/...
ミカウォルター

68

ここで私のために働いた解決策を見つけました:

/dba/75214/psql-could-not-connect-to-server-no-such-file-or-directory

基本的には、次のコマンドを実行して手動でサーバーを起動します。

pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start

8
すべての答えのうち、これが私のために働いた唯一のものです。El Capitanの使用
Patrick_870206

私はそのコマンドで試しましたが、うまくいきませんでした!!
Harshit Trivedi

41

brewを使用したpostgresのインストールとアンインストールが機能しない場合は、postgresqlインストールのログを確認するか、次のようにします。

postgres -D /usr/local/var/postgres

この種の出力が表示された場合:

LOG:  skipping missing configuration file "/usr/local/var/postgres/postgresql.auto.conf"
FATAL:  database files are incompatible with server
DETAIL:  The data directory was initialized by PostgreSQL version 9.4, which is not compatible with this version 9.6.1.

次に、以下を試してください。

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

次に、サーバーを起動します。

pg_ctl -D /usr/local/var/postgres -l logfile start

ソース


2
理由が受け入れられた回答と異なる場合、つまりデータベースファイルが現在のバージョンと互換性がない場合に機能します。まさにそれが私の問題なので、賛成票を投じます。
Falk Schuetzenmeister

1
このコマンドは私にとってはうまくいきます。
Ccr値

Mojave 10.14.6に対応
Sgryt87

34

Yosemiteでは、pidファイルがPostgresの起動をブロックしていて、launchctlデーモンがデータベースデーモンのロードを試行(および失敗)している場合、plistファイルをアンロードする必要があります。

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

次に、pidファイルを削除します。

$ rm /usr/local/var/postgres/postmaster.pid

次にlaunchctlデーモンをリロードします

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

28

これを読んでPostgres.appを使用host: localhostしている人には、database.yml が必要になるかもしれません。http://postgresapp.com/documentation#toc_3


これを行うと、接続がソケットからTCP接続に変更され、悪影響が生じる可能性があります。stackoverflow.com/questions/6770649/…を
Brett Bim

1
ええと、実際、あなたが反対票を投じた場合...多分理由を言わないのですか?meta.stackoverflow.com/questions/252297/…または理由を言うかもしれませんが、最初にログアウトして匿名にします。
David Winiecki 14

反対票は、元の質問がPostgres.appではなくHomebrewのためであったためだと思います。答えはどこかで役立つかもしれませんが、それは質問に答えていません。
Brian Dear 14年

リンクは特定の場所に移動していないようです(過去に「localhost」を検索しても結果はありません)。これにより、1時間検索した後、問題が解決しました。
sixty4bit 2017

25

データベースのアップグレードは私にとってはうまくいきます

brew postgresql-upgrade-database


To️🙏Thankyou Tomer!これは、macOS Mojave 10.14.6で9.4から12にアップグレードする6/2/20のアップグレードで機能しました
Rob Bednark

19
brew services start postgres 

私のために働いた!


17

ソケットファイルが存在することを確認してください。

$ ls -l /tmp/.s.PGSQL.5432
srwxrwxrwx  1 you  wheel  0 Nov 16 09:22 /tmp/.s.PGSQL.5432

表示されない場合は、postgresql.confでunix_socket_directoryの変更を確認してください。

$ grep unix_socket /usr/local/var/postgres/postgresql.conf
#unix_socket_directory = ''     # (change requires restart)
#unix_socket_group = ''         # (change requires restart)
#unix_socket_permissions = 0777     # begin with 0 to use octal notation

1
これは私のコンピュータの応答です。$ ls -l /tmp/.s.PGSQL.5432 ls: /tmp/.s.PGSQL.5432: No such file or directory $ grep unix_socket /usr/local/var/postgres/postgresql.conf #unix_socket_directory = '' # (change requires restart) #unix_socket_group = '' # (change requires restart) #unix_socket_permissions = 0777 # begin with 0 to use octal notation
Gary Lai、

29
最後に私は解決策を見つけます。$ mkdir /var/pgsql_socket/ $ sudo mkdir /var/pgsql_socket/ $ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/このソリューションは少しトリッキーですが、機能します。誰もがより良い解決策を持っていることを願っています
ゲイリー・ライ

素晴らしい仕事@GaryLai。私が自作のpostgresqlで同じことをする必要がなかったことは非常に奇妙です
jrwren

2
これはそこにいくつかの人々を助けるかもしれない:github.com/mxcl/homebrew/issues/14527を
AdamT

14

この問題は、postmaster.pidファイルを残したクラッシュしたプロセスが原因である可能性もあります。私はこれをして仕事をします:

$ brew services stop postgresql
$ rm /usr/local/var/postgres/postmaster.pid # adjust path accordingly to your install
$ brew services start postgresql

10

問題は、ポート5432ですでに実行中のサービスがあり、このポートを介してpsqlソケット接続を確立できないためです。

ソケットファイルを削除しました

rm -rf /tmp/.s.PGSQL.5432/

次に、postgresサービスを再初期化しました

postgres -D /usr/local/var/postgres

これでうまくいきました。


9

これを回避する最も簡単な方法は、

brew reinstall postgresql

これにより、ユーザー権限などがすべてそのまま維持され、すべてが新しい状態にリセットされます。いつでも動作します!


チャンピオンのように働いた!!!! これはすべて必要でした。
Akash K

これは機能しますがrm /usr/local/var/postgres/postmaster.pid、Mac OSで機能しない場合は、このコマンドを使用することをお勧めします。
Yaseen Ahmad

7

postresqlまたはdatabase.ymlの構成設定の変更、$ PATHの変更、またはシンボリックリンクの作成はすべて私にとって不要でした。私がする必要があったのはgem uninstall pgそれからbundle(またはgem install pg)だけでした。

問題は、pg gemが自家製のpostgresの前にインストールされていたため、MacOSに付属するバージョンのpostgresから設定を取得していたことでした。それを再インストールすると(したがってネイティブ拡張を再構築すると)、問題が修正されました。


感謝したいだけです。macOSでPostgresAppをアップグレードしたところ、psqlを使用して接続できましたが、レール経由で接続できませんでした。pg gemのアンインストールと再インストールは単なるチケットでした!:)
craig1410 2018

7

データベースはアップグレードしないと互換性がないため、9.3.4から9.5にアップグレードしたときにこれが起こりました。

次のようにpg_upgradeを使用しました。

postgresを停止する

$ brew services stop postgresql

データベースをアップグレードします。

$ pg_upgrade \
   -d /usr/local/var/postgres \
   -D /usr/local/var/postgres9.5 \
   -b /usr/local/Cellar/postgresql/9.3.4/bin/ \
   -B /usr/local/Cellar/postgresql/9.5.0/bin/ \
   -v

古いデータベースをアーカイブします。

 $ mv /usr/local/var/postgres /usr/local/var/postgres9.3.save
 $ mv /usr/local/var/postgres9.5 /usr/local/var/postgres

postgresを再起動します。

 $ brew services start postgresql

更新された宝石(レール/アクティブレコード用):

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

これらの手順はcollectiveidea.com/blog/archives/2016/01/08/…にもあり、今日も9.4.0から9.6.3にアップグレードするときに機能しました。.pidファイルを手動で変更する必要はありませんでした。
Jan Hettich 2017

7

これは実際にあなたがすべきことです:

代わりに/usr/local/var/postgres/postmaster.pidを確認する必要があります

そして、ファイルの最初の行を見てください-これは悪いPIDです

走る

ps aux | grep <PID>

例えば:

ps aux | grep 12345

それから

kill <PID>

例えば

kill 12345

それがまだ実行されていると仮定します

/superuser/553045/fatal-lock-file-postmaster-pid-already-exists

受け入れられた答えを聞かないでください、それは悪いことであり、あなたのデータを破壊します!!!


ありがとう、これでうまくいきました。受け入れられた回答からpostmaster.pidを削除するだけでは、実際には十分ではありませんでした。
阿部ペトリロ2017年

4

PSQLオプション

-h hostname --host = hostname

:サーバーが実行されているマシンのホスト名を指定します。 値がスラッシュで始まる場合、Unixドメインソケットのディレクトリとして使用されます。

$ grep "port\|unix_socket" /etc/postgresql/9.1/main/postgresql.conf
port = 5433                                         # (change requires restart)
unix_socket_directory = '/var/run/postgresql'       # (change requires resta

$ netstat -nalp | grep postgres
unix  2      [ ACC ]     STREAM     LISTENING     106753   4349/postgres       /tmp/.s.PGSQL.5432
unix  2      [ ACC ]     STREAM     LISTENING     10377 1031/postgres       /var/run/postgresql/.s.PGSQL.5433

-hostオプションを指定してpsqlを実行する

$ psql -p 5433 -h /var/run/postgresql

ソフトリンクを作成する必要はありません


4

MacOS Sierraでもこの問題に遭遇し、上記のようにpg_ctlを実行すると、次のエラーが発生しましたpg_ctl: no database directory specified and environment variable PGDATA unset。したがって、私たちはここで問題を解決する次の手順に従いました。

mkdir ~/.postgres

initdb ~/.postgres

pg_ctl -D ~/.postgres start


4

postgresがhomebrewを使用してインストールされている場合は、次のコマンドを実行してこれを修正できます。

brew link postgres


4

psqlを終了せずにシステムをシャットダウンした場合、postgresは一部のファイルを削除しませんでした。

usr / local / var / postgresの場所にファイルpostmaster.pidが見つかりませんでした

だから私は以下をしました:

brewサービスがpostgresqlを開始

上記のコマンドでpostgresを起動できます


3

他のプロセスがデータベースにアクセスしているときにデータベースを復元/ドロップ/作成しようとした後、この問題に遭遇しました。MacOSX / Homebrewの修正は:

  1. 近くに他のすべてのアクセスしているプロセスrails serverrails consoleguard、等...
  2. にあるコマンドを使用してロード/アンロード brew info postgres
  3. 以前から復元/ドロップ/作成を実行する

3

FWIWこれは今日私に起こりました、しかし起こったのは私がその時にUbuntuのアップデートを実行していて、それがPostgresをアップデートしていることでした。更新が完了すると、問題なく接続できました。

完全を期すために、私はRailsコンソールからデータベースからレコードを取得しようとしていました。

development (main):0 > a = MyModel.find 73694
PG::ConnectionBad: 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"?

3

PSQLが実行されていないようです。接続する前に実行する必要があります。Mac OSのみのPostgres.appを使用してそれを行うことができます。(このアプリhttp://postgresapp.comをダウンロードしてインストールします)アプリを開くと、PostgreSQLサーバーの準備が完了し、新しい接続を待機しています。アプリを閉じると、サーバーがシャットダウンします。この情報は、http: //www.postgresql.org/download/macosx/にもあります。これがお役に立てば幸いです。


1
このリンクで質問に答えることができますが、回答の重要な部分をここに含め、参照用のリンクを提供することをお勧めします。リンクされたページが変更されると、リンクのみの回答が無効になる可能性があります。
Kmeixner、2015年

問題は、Postgres.appのインストールではなく、自作のインストールに関するものでした。この回答は役に立ちますが、質問には回答しません。「代わりにMySQLを使用する」と言うようなものです。
Brian Dear

3

以前のサーバーがまだ実行中であるため、すべてを閉じてアプリケーションを再実行してください。


3

このコマンドを使用して機能しない、またはファイルが存在せず、Ruby on Railsを使用しているユーザー向け

rm /usr/local/var/postgres/postmaster.pid

または、他のコマンドを実行しても、失敗し続けます。

この問題をBrewでアンインストールして解決しました。最初のアンインストールでpostgresqlの別のバージョンが残り、2番目のアンインストールでプロセスが完了するため、brewで2回アンインストールする必要がありました。

Brewでpostgresqlをインストールする

次に、プロジェクトのデータベースをドロップ、作成、および移行します

(postgresqlサーバーを起動することを忘れないでください)


3

コードで間違ったPostgresのユーザー名を使用しているため、同じ問題が発生しました。私はpostgresにログインしpsql -d postgresて入力しました\duロール名を取得し、Postgresのユーザー名を修正します。

したがって、この問題に直面した場合は、正しいPostgresユーザー名、パスワード、ホスト名、およびデータベースを使用していることを確認する必要があります...

これが誰にも役立つことを願っています


3

recently最近、pg_hba.confを変更しましたか?入力ミスをチェックしただけの場合:

「ローカル」は、Unixドメインソケット接続専用です。

ローカルすべてのすべてのパスワード

IPv4ローカル接続:

すべての127.0.0.1/32パスワードをホストする

IPv6ローカル接続:

すべてのホスト:: 1/128パスワード

単純な間違いが頭痛の種になることがあります。私の英語がまったく上手くいかない場合は、この助けと申し訳ありません。


3

これは、postgresサーバーが実行されていないときに発生します。MACにHomebrewを介してPostgresを適切にインストールする手順:

  1. brew install postgres

  2. initdb /Users/<username>/db -E utf8 [これは、postgresを初期化して、指定されたディレクトリをデータベースディレクトリとして使用します。通常、データベースストレージにユーザーディレクトリを使用することはお勧めしません。sudoersファイルを編集してinitdbおよび類似のコマンドを追加し、/ usr / local / var / postgresでinitdbを実行します]

  3. pg_ctl -D /Users/<username>/db -l logfile start [ステップ2で成功した後、ステップ3を実行するように求められます。このコマンドは手動でサーバーを起動します。]


2

これと同じエラーが発生しました。postgresがまったく実行されていなかったことが判明しました(通常は常にバックグラウンドで実行されていますが、何らかの理由で現在は実行されていませんでした)。

この場合は、postgresプロジェクトディレクトリのコマンドラインに入力するだけです。


2

膨大な量のやり取りを繰り返した結果、実際に使用していたのはpg宝石のバージョンになりました。マーベリックスでは、pgバージョン0.15.1はポート5432に接続しませんが、バージョンは0.17.1正常に機能します-非常に奇妙です。

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