web-dev-qa-db-ja.com

Postgresqlアダプター(pg):サーバーに接続できませんでした

Rails app(ItはローカルPostgresqlに接続できません)を実行するたびにこのエラーが発生します)

/Users/leonardo/.rvm/gems/Ruby-1.9.3-p362/gems/activerecord-3.2.11/lib/
active_record/connection_adapters/postgresql_adapter.rb:1208:in `initialize': 
could not connect to server: No such file or directory (PG::Error)
   Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

私は Postgres.app を使用しています。

走ったら

$ psql

Postgresqlコンソールに適切にログインできます。

$ which psql
 /Applications/Postgres.app/Contents/MacOS/bin/psql

Gemfile

source 'https://rubygems.org'
Ruby "1.9.3"

gem 'Rails', '3.2.11'
gem "pg"

database.yml

development:
  adapter: postgresql
  encoding: unicode
  username: leonardo
  password: 
  database: zapping
  port: 5432  

Postgresql(コンソール)

$ psql
leonardo=# \l

enter image description here

63
sparkle

Host: localhostをdatabase.ymlに追加してみてください。 (ベース: https://stackoverflow.com/a/10793186/919641

130
pjam

Pg gemは、Mac OS XにプリインストールされているPostgreSQL libpqに対してコンパイルされており、新しいバージョンでインストールしたpsqlを使用しています。

これは、TCP/IP接続を指定し、localhostdatabase.ymlに追加することで回避できますが、Pg gemをlibpqに対してコンパイルする方が適切です。実際に実行しているサーバー。これを行うには、コンパイル前に、PATH環境変数に正しいpg_configを含むフォルダーを設定できる必要があります。あなたの場合、それはPostgres.app内のどこかにあります。

25
Craig Ringer

Host: localhostを追加しても機能しない場合は、postmaster.pidを削除してください

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

24

Host: localhostをデータベース構成に追加する必要があります...

11

Macでも同じ問題が発生しました。私のパスにあったpsqlが正しく機能していなかったことがわかりました。次を入力してpsqlを起動してみてください。

~/projects/some_project/project-Rails$ psql
  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"?

これが表示される場合、パス上のpsqlバイナリがソケットを使用して接続しようとしており、(何らかの理由で)接続できないことを示しています。 pgadmin を既にダウンロードしており、正常に接続していたので、サーバーの問題ではないことがわかりました。

修正したpgsqlの正しいバージョンをPATHに追加して:

export PATH=/Applications/Postgres.app/Contents/MacOS/bin:$PATH

これで、psql(およびRails)は満足です!

6
paneer_tikka

これは私の検索結果に表示された最初の投稿であったため、このための更新された修正を投稿することにしました。上記の提案はどれも役に立たなかったので。

brew postgresql-upgrade-database

Postgresqlデータをアップグレードし、古いバージョンを移動しました。 10.4ではなく9.6でした

ソリューションを見つけました こちら

6
Mr. Rene

これと同じ問題がありました。実際にpostgresを実行/開始する必要があります。最近、コンピューターでPostgresの実行が停止したはずなので、postgresサーバーを起動して、実行していることを確認する必要がありました。

postgres -D /usr/local/var/postgres

それから、次のコマンド(これはあなたと同じエラーを引き起こしていました)がすべて機能しました:

bundle exec rake db:create db:migrate
bundle exec rspec
6
L. Stepanek

この問題がありました。ここでのコメントの1つは、問題の解決に役立ちました。

おかげで、この答えは私がそれを修正するのに役立ちました。私がとった手順は簡単でした:1)gem uninstall pg、2)bundle install、完了。 -ハスロ12年3月3日20:27で

gem uninstall pg
bundle install
6
Jared Menard

find/-name 'postgresql.conf'

netstat -an | grep 5432 #=> /tmp/.s.PGSQL.5432

vi/Users/admin/Library/Application\Support/Postgres93/var/postgresql.conf

FROM: unix_socket_directories = '/ tmp'

TO: unix_socket_directories = '/ var/pgsql_socket'

Sudo mkdir/var/pgsql_socket

Sudo chmod 777/var/pgsql_socket

4
the-teacher

Herokuに必要なのはこれだけです。

heroku addons:create heroku-postgresql

production:
 adapter: postgresql
 encoding: unicode
 Host: localhost
 # For details on connection pooling, see Rails configuration guide
 # http://guides.rubyonrails.org/configuring.html#database-pooling
 pool: 5
2
jmontross

私の問題は、/etc/hostsファイルが変更され、この重要なエントリがありませんでした:127.0.0.1 localhost

0
dani24

PostgresアプリがMacで実行されていないという問題がありました...

0
Yoko

Macでは、異なるバージョンのpostgresqlがありました。この問題は、brew switch postgresql 9.5.5(この時点ではバージョン番号は重要ではないと思う)

$ brew switch postgresql 9.5.5
Cleaning /usr/local/Cellar/postgresql/9.6.1
Cleaning /usr/local/Cellar/postgresql/9.6.5
Cleaning /usr/local/Cellar/postgresql/10.2
Cleaning /usr/local/Cellar/postgresql/10.3
Cleaning /usr/local/Cellar/postgresql/9.5.5
Cleaning /usr/local/Cellar/postgresql/9.5.4

ちなみに、すべてのデータは失われます。バージョンを切り替えずにこれを行うための醸造コマンドがあると思いますが、見つけることができませんでした。

0
kangkyu

OS High Sierra 10.13でも同じ問題が発生しました。バージョン10.4 refをダウンロードしたこのWebサイトの指示に従いました。 https://postgresapp.com/

次に、これをbashプロファイルに追加しました:export PATH = $ PATH:/Library/PostgreSQL/10.4/bin:$ PATH

ターミナルを再起動します。

新しいウィンドウターミナルを開き、次のように入力します。psql -U postgres

その後、次のメッセージが表示されます。psql(10.4)「help」と入力してヘルプを表示します。

postgres =#

0
Jaime A