66

Railsアプリを実行するたびにこのエラーが発生します(ローカルの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

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

4

15 に答える 15

137

host: localhostdatabase.ymlに追加してみてください。(ベース:https ://stackoverflow.com/a/10793186/919641 )

于 2013-01-08T22:40:02.487 に答える
26

gemPgは、Mac OSXにプリインストールされているPostgreSQLlibpqに対してコンパイルさpsqlれており、新しいバージョンでインストールしたものを使用しています。その逆も同様です。

これは、TCP / IP接続を指定し、にを追加することで回避できますlocalhostが、実際に実行しているサーバーのに対してgemdatabase.ymlをコンパイルすることをお勧めします。これを行うには、コンパイルする前に、環境変数を正しいフォルダーに設定できる必要があります。あなたの場合、それは内のどこかになります。PglibpqPATHpg_configPostgres.app

于 2013-01-09T03:12:13.030 に答える
25

追加しても機能しない場合はhost: localhostpostmaster.pid

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

于 2017-06-25T00:06:08.673 に答える
11

host: localhostあなたはあなたのdb設定に追加する必要があります...

于 2013-01-08T22:35:56.083 に答える
6

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)は満足です!

于 2013-07-19T12:19:52.700 に答える
6

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

postgres -D /usr/local/var/postgres

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

bundle exec rake db:create db:migrate
bundle exec rspec
于 2016-11-02T15:06:18.243 に答える
6

この問題が発生しました。ここでのコメントの1つは、問題の修正に役立ちました。

おかげで、この答えは私がそれを修正するのに役立ちました。私が行った手順は単純でした:1)gemアンインストールpg、2)バンドルインストール、完了。–haslo2013年12月3日20:27

gem uninstall pg
bundle install
于 2017-11-20T16:03:40.927 に答える
6

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

brew postgresql-upgrade-database

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

ここで解決策を見つけました

于 2018-06-12T14:03:34.047 に答える
5

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

于 2014-01-13T08:25:43.133 に答える
2

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
于 2015-07-14T20:22:03.653 に答える
0

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

于 2017-12-21T10:32:08.693 に答える
0

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

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

于 2018-03-30T16:56:46.803 に答える
0

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

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

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

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

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

postgres =#

于 2018-06-02T17:57:47.953 に答える
0

私の問題は、/etc/hostsファイルが変更され、この重要なエントリがなかったことです。127.0.0.1 localhost

于 2018-10-04T15:59:17.013 に答える
0

同様の問題がありpsqlました。ターミナルでコマンドを実行しても同じエラーが発生したため、pg gemに問題はなく、postgresのセットアップ自体を確認する必要があることがわかりました。そこで、postgresログを確認しました-私の場合、それらはにあり/usr/local/var/log/postgres.log、次のエラーが表示されました:

dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.66.dylib
  Referenced from: /usr/local/opt/postgresql/bin/postgres

したがって、正確なエラーを知ることは問題を解決するのに役立ちました。私の場合、この回答に基づいて実行しました

brew switch icu4c 66.1

postgresを再起動した後に問題を解決しました:

brew services restart postgresql
于 2020-09-23T02:48:21.413 に答える