PG :: ConnectionBad-サーバーに接続できませんでした:接続が拒否されました


271

rails 4.0サーバーを実行するたびに、この出力が表示されます。

Started GET "/" for 127.0.0.1 at 2013-11-06 23:56:36 -0500

PG::ConnectionBad - could not connect to server: Connection refused
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on host "localhost" (fe80::1) and accepting
TCP/IP connections on port 5432?
:
 activerecord (4.0.0) lib/active_record/connection_adapters/postgresql_adapter.rb:825:in `connect'
 activerecord (4.0.0) lib/active_record/connection_adapters/postgresql_adapter.rb:542:in `initialize'
 activerecord (4.0.0) lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `postgresql_connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:440:in `new_connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:450:in `checkout_new_connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `acquire_connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:356:in `block in checkout'
 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:355:in `checkout'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:265:in `block in connection'
 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:264:in `connection'
 activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:546:in `retrieve_connection'
 activerecord (4.0.0) lib/active_record/connection_handling.rb:79:in `retrieve_connection'
 activerecord (4.0.0) lib/active_record/connection_handling.rb:53:in `connection'
 activerecord (4.0.0) lib/active_record/migration.rb:792:in `current_version'
 activerecord (4.0.0) lib/active_record/migration.rb:800:in `needs_migration?'
 activerecord (4.0.0) lib/active_record/migration.rb:379:in `check_pending!'
 activerecord (4.0.0) lib/active_record/migration.rb:366:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
 activesupport (4.0.0) lib/active_support/callbacks.rb:373:in `_run__1613334440513032208__call__callbacks'
 activesupport (4.0.0) lib/active_support/callbacks.rb:80:in `run_callbacks'
 actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/reloader.rb:64:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/remote_ip.rb:76:in `call'
 better_errors (0.9.0) lib/better_errors/middleware.rb:84:in `protected_app_call'
 better_errors (0.9.0) lib/better_errors/middleware.rb:79:in `better_errors_call'
 better_errors (0.9.0) lib/better_errors/middleware.rb:56:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
 railties (4.0.0) lib/rails/rack/logger.rb:38:in `call_app'
 railties (4.0.0) lib/rails/rack/logger.rb:21:in `block in call'
 activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `block in tagged'
 activesupport (4.0.0) lib/active_support/tagged_logging.rb:25:in `tagged'
 activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `tagged'
 railties (4.0.0) lib/rails/rack/logger.rb:21:in `call'
 quiet_assets (1.0.2) lib/quiet_assets.rb:18:in `call_with_quiet_assets'
 actionpack (4.0.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
 rack (1.5.2) lib/rack/methodoverride.rb:21:in `call'
 rack (1.5.2) lib/rack/runtime.rb:17:in `call'
 activesupport (4.0.0) lib/active_support/cache/strategy/local_cache.rb:83:in `call'
 rack (1.5.2) lib/rack/lock.rb:17:in `call'
 actionpack (4.0.0) lib/action_dispatch/middleware/static.rb:64:in `call'
 railties (4.0.0) lib/rails/engine.rb:511:in `call'
 railties (4.0.0) lib/rails/application.rb:97:in `call'
 rack (1.5.2) lib/rack/content_length.rb:14:in `call'
 thin (1.5.1) lib/thin/connection.rb:81:in `block in pre_process'
 thin (1.5.1) lib/thin/connection.rb:79:in `pre_process'
 thin (1.5.1) lib/thin/connection.rb:54:in `process'
 thin (1.5.1) lib/thin/connection.rb:39:in `receive_data'
 eventmachine (1.0.3) lib/eventmachine.rb:187:in `run'
 thin (1.5.1) lib/thin/backends/base.rb:63:in `start'
 thin (1.5.1) lib/thin/server.rb:159:in `start'
 rack (1.5.2) lib/rack/handler/thin.rb:16:in `run'
 rack (1.5.2) lib/rack/server.rb:264:in `start'
 railties (4.0.0) lib/rails/commands/server.rb:84:in `start'
 railties (4.0.0) lib/rails/commands.rb:78:in `block in <top (required)>'
 railties (4.0.0) lib/rails/commands.rb:73:in `<top (required)>'
 bin/rails:4:in `<main>'

私はMavericks OS X 10.9を実行しているので、それが問題であるかどうかはわかりません。私はできる限りのことを試しましたが、何もうまくいかないようです。私は今、postgresとpg gemの両方を複数回アンインストールしてインストールしました。

これは私のdatabase.ymlファイルです

development:
  adapter: postgresql
  encoding: unicode
  database: metals-directory_development
  pool: 5
  username: 
  password: 
  template: template0
  host: localhost
  port: 5432

test: &test
  adapter: postgresql
  encoding: unicode
  database: metals-directory_test
  pool: 5
  username: 
  password: 
  template: template0
  host: localhost
  port: 5432

staging:
  adapter: postgresql
  encoding: unicode
  database: metals-directory_production
  pool: 5
  username:
  password:
  template: template0
  host: localhost

production:
  adapter: postgresql
  encoding: unicode
  database: metals-directory_production
  pool: 5
  username:
  password:
  template: template0
  host: localhost

cucumber:
  <<: *test

2
database.ymlに「host:localhost」を追加してみてください。これは、stackoverflow.com
a / 10793186/919641

1
@trajan私はすでにそれをしました。私が最初に解決策を研究し始めたときも、そのスレッドを使用しました。database.ymlファイルを投稿しました。ご覧になれます。多分それは役立つかもしれません。
fadelakin 2013年

pg_hba.confを表示
Pronix

2
使用している場合は、postgresアプリをオンにすることを忘れないでください。
Pavan Katepalli 2015年

1
アプリ@PavanKatepalliをオンにするように通知していただきありがとうございます。グッドコール;)
catch22

回答:


638

古いPIDファイルのように単純な場合もあります。コンピュータがシャットダウンプロセスを完全に完了しなかったためにサイレントで失敗している可能性があります。これは、postgresPID(プロセスID)ファイルを削除しなかったことを意味します。

PIDファイルは、サーバーのインスタンスが一度に1つだけ実行されていることを確認するためにpostgresによって使用されます。したがって、サーバーが再び起動しようとすると、サーバーの別のインスタンスが起動したことをpostgresに知らせるPIDファイルがすでにあるため、失敗します(サーバーが実行されていなくても、シャットダウンしてPIDを削除できませんでした)。 。

  1. それを修正するには、PIDファイルを削除/名前変更します。postgresデータディレクトリを見つけます。自作を使用しているmacOSでは/usr/local/var/postgres/、それは、または/usr/local/var/log/他のシステムにある可能性があります/usr/var/postgres/
  2. これが問題であることを確認するには、ログファイル(server.log)を確認します。最後の行に表示されます:

致命的:ロックファイル "postmaster.pid"はすでに存在しています
ヒント:データディレクトリ "/ usr / local / var / postgres"で別のポストマスター(PID 347)が実行されていますか?

  1. もしそうなら、 rm postmaster.pid
  2. サーバーを再起動します。launchctl(homebrewを使用)を使用するMacでは、次のコマンドでサーバーを再起動します。

    launchctl unload homebrew.mxcl.postgresql.plist  
    launchctl load -w homebrew.mxcl.postgresql.plist

    またはBrewの新しいバージョン

    brew services restart postgresql

24
#2は素晴らしい提案です:「server.logを確認してください」。私のエラーは実際にはYosemiteへのアップグレードが原因でした、サーバーログは言った:FATAL: could not open directory "pg_tblspc": No such file or directory。この回答は、その問題を解決するのに役立ちました。stackoverflow.com/ questions / 25970132
Paul Kaplan

20
問題の焦土スタイルを修正するのに十分だったので、私はこれを賛成しました。私はpg(gem uninstall pg)をアンインストールし、postgres(brew uninstall postgres)をアンインストールしてから、(rm -rf /usr/local/var/postgres)に古いファイルの束が残っているpostgresフォルダーを削除しました。再起動後brew install postgresln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgentslaunchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist、とARCHFLAGS="-arch x86_64" gem install pg。これを機能させる前に、他にいくつの解決策を試したかわかりません。
IAmNaN 2014年

2
postmaster.optsファイルはpostmaster.pidファイルと同じですか?
ARTLoe 2015

31
新しいBrewユーザーの場合、#4のコマンドはbrew services restart postgresql
Streetlogics

7
私(MAC、自作)のログファイルは/usr/local/var/log/postgres.log
DZack

44

多くの検索と分析の後、ubuntuを使用している場合は解決策を見つけました。ターミナルでこのコマンドを記述してEnterキーを押してください。

sudo service postgresql restart

これでPostgreSQLが再起動します。これがお役に立てば幸いです。


3
1000回ありがとうございます。私はubuntuバージョンをアップグレードしましたが、これは私のために修正されました。
Mauricio Moraes

この質問はOSX Mavericksに関するものですが、この解決策は、移行またはサーバーの起動時に風変わりなことが発生したときに、Ubuntuのインストールに役立ちます。
ジェローム

39

この問題は、postgresが適切にシャットダウンしない場合に発生します。これが、この問題を3つの簡単なステップで解決する方法です。

ステップ1: postgresディレクトリに移動します

Macユーザーはこれをで見つけますが/usr/local/var/postgres、他の人も見るかもしれません/usr/var/postgres/

手順2:.pidこのコマンドを実行してファイルを削除します。

rm postmaster.pid

ステップ3:サーバーを再起動する

Macユーザー

brew services restart postgresql

Linuxユーザー

sudo service postgresql restart

最後にアプリを再起動してください。


33

私はChris Sladeの答えに従って問題を解決することができましたが、サーバーを再起動するには、次のコマンドを使用する必要がありました。

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

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

私がここで見つけたもの(一番下のpjammerの答え)


25

システム内にpostgresqlがインストールされていますか?そうでない場合は、Postgresqlのインストールを確認してくださいpostgresqlをシステムに正常に統合したら、システムターミナルで次のように入力できます。

which psql
#=> /usr/bin/psql

その後、次のようにpostgresqlにユーザーとデータベースを作成する必要があります。

sudo su - postgres
psql

次に、あなたはあなたのターミナル内で以下を見ることができます

postgres=#

そこに入力:

CREATE USER yourname WITH PASSWORD 'passwordhere';
CREATE DATABASE metals-directory_production  WITH OWNER yourname;
GRANT ALL PRIVILEGES ON DATABASE metals-directory_production TO yourname;

これを実行したら、を修正する必要がありますdatabase.yml。おそらくあなたはそのようなものが必要です:

development:
  adapter: postgresql
  encoding: unicode
  database: metals-directory_development
  pool: 5
  username: yourname
  password: passwordhere   ### password you have specified within psql
  host: localhost
  port: 5432               ### you can configure it in file postgresql.conf

また、postgresqlに問題がある場合は、pg_hba.confを確認することをお勧めします


1
インストールしましたが、場所は/ usr / local / bin / psqlにあり、sudo -u postgresを実行するとsudo:unknown user:postgres
fadelakin

アプリでpgを使用する場合は、psqlが機能するはずです。ターミナルのpsqlメタル-directory_developmentに入力してみてください。結果は?そうでない場合は、postgresを再インストールしてみてください。たとえば、これを試してください
Mihail Davydenkov

psql Metals-directory_developmentを実行すると、psql:サーバーに接続できませんでした:そのようなファイルまたはディレクトリはありませんサーバーはローカルで実行され、Unixドメインソケット "/tmp/.s.PGSQL.5432"で接続を受け入れていますか?私はレールの初心者プログラマであり、それが何を意味するのか私にはわかりません。私は何度もpostgresを再インストールしようとしましたが、うまくいきませんでした。
fadelakin 2013年

23

問題のこれらの種類修正するにはPostgresとして仕事にPostgresの上にMac OSX、これはおそらくベスト最も簡単な私がこれまでに発見したことソリューション:

http://postgresapp.com/

ただダウンロードして、インストールして、幸せになりましょう:)


19
  1. pgをアンインストールします。

    gem uninstall pg
  2. postgresをアンインストールします。

    brew uninstall postgres
  3. 古いものの束が残っているpostgresフォルダーをNukeします。

    rm -rf /usr/local/var/postgres
  4. 再起動(おそらく不要)

  5. pgを再インストールします。

    brew install postgres
  6. Chris Sladeの回答での私のコメントは、pgを困難な方法で開始します。今、私はbrewサービスを使用しています。

    brew install services
  7. そしてそれを使ってpgを開始します。

    brew services start postgresql
  8. gemを再インストールします。

    gem install pg

そしてbobsyouruncle。


3
この方法に注意してください...これは焦土のアプローチであり、現在持っているローカルデータベースをすべて破壊する可能性があります。見てきたgithub.com/copiousfreetime/launchy行うには、あなたができるかもしれませんlunchy stop postgresが続くlunchy start postgres
lacostenycoder

ubuntuでは、私は信じるsudo apt purge postgresqlか、他のpostgresqlパッケージは十分であるはずであり、それはすべてを破壊するでしょう。
Fabrizio Bertoglio

これを行ったところ、次のエラーが発生しました:postgresql_adapter.rb:709:in `rescue in connect ':FATAL:database" project3_development "does not exist(ActiveRecord :: NoDatabaseError)。私は何をすべきか ?実際にデータベースをルビーマインで見ることができます。
Franky Doul、

13

ファイルのチェックpostgresql.confの(上ubuntuにある/etc/postgresql/XX/main/postgresql.conf言うライン用)と見て:

listen_addresses="localhost"

それを次のように変更してみてください:

listen_addresses="*"

すべてのIPを受け入れます。次の行を確認してください。

port=5432

そして、あなたのdatabase.ymlの同じポートかどうかを確認してください、デフォルトでは私のpostgresql-9.2 では5432の代わりに5433を使用し、再起動することを忘れないでください、postgresサーバーする、

幸運を!


これも私の問題でした。「アップグレード」(つまり9.5をインストール)しようとしたときにすでに9.3が実行されていたため、このようなことが起こったのではないかと思います。既存のインストール/プロセスを引き継ぐのではなく、別のポートで並行して実行するように丁寧に構成していると思います。
Joel Fouse 16

12

@Magneで説明さPG::ConnectionBad - could not connect to server: Connection refusedれているように、PostgreSQLのメジャー/マイナーバージョンのアップグレード(9.5 -> 9.6またはなど9 -> 10)の後にエラーが発生する可能性があります。

brew upgrade postgresqlPostgreSQLバージョン9.6のリリース後に実行した後、このエラーが発生しました。問題は、メジャー/マイナーバージョンのアップグレードで、古い日付を新しいバージョンに移行するための追加の手順が必要になることです。

これが問題かどうかを確認する方法

これが問題であるかどうかを確認するには、homebrewでインストールされた最新のbrew数式PostgreSQLバージョンを確認します...

$ brew info postgresql

/usr/local/Cellar/postgresql/9.5.4_1 (3,147 files, 35M)
Poured from bottle on 2016-10-14 at 13:33:28
/usr/local/Cellar/postgresql/9.6.1 (3,242 files, 36.4M) *
Poured from bottle on 2017-02-06 at 12:41:00

...そしてそれを現在のPG_VERSIONと比較します

$ cat /usr/local/var/postgres/PG_VERSION
9.5

PG_VERSIONが最新の抽出式より小さく、その違いがメジャー/マイナーバージョンの変更である場合、これはおそらく問題です。

修正方法(つまり、データをアップグレードする方法)

以下の手順は、9.5から9.6へのアップグレードに関するものです。自分のアップグレードに合わせてバージョン番号を変更します

ステップ1. PostgreSQLがオフになっていることを確認します。

$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
# or, with Homebrew...
$ brew services stop postgresql

ステップ2.新しいPristineデータベースを作成します。

$ initdb /usr/local/var/postgres9.6 -E utf8

ステップ3.新旧のバイナリバージョンを確認します。

$ ls /usr/local/Cellar/postgresql/
9.5.3   9.5.4   9.6.1

この例では、9.5.4バイナリから9.6.1バイナリにアップグレードしています。

ステップ4. pg_upgradeユーティリティを使用して、現在のデータを新しいデータベースに移行します。

$ pg_upgrade \
  -d /usr/local/var/postgres \
  -D /usr/local/var/postgres9.6 \
  -b /usr/local/Cellar/postgresql/9.5.4/bin/ \
  -B /usr/local/Cellar/postgresql/9.6.1/bin/ \
  -v
  • -d フラグは現在のデータディレクトリを指定します
  • -D フラグは、作成する新しいデータディレクトリを指定します
  • -b 古いバイナリを指定します
  • -B アップグレードする新しいバイナリを指定します

手順5.古いデータディレクトリを邪魔にならない場所に移動する

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

ステップ6.新しく作成されたデータディレクトリをPostgreSQLが期待する場所に移動する

$ mv /usr/local/var/postgres9.6 /usr/local/var/postgres

ステップ7. PostgreSQLを再起動する

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
# or, if you're running a current version of Homebrew
$ brew services start postgresql

ステップ8. Railsのpg gemを使用している場合は、gemをアンインストールして再インストールすることで再コンパイルする必要があります(pg gemを使用していない場合は、このステップをスキップしてください)

$ gem uninstall pg
$ gem install pg

ステップ9(オプション)すべてが正常に機能していることを確認したら、次のコマンドを使用してディスク容量を取り戻します。

brew cleanup postgresql

...そして本当に勇気があるなら、次のコマンドで古いPostgreSQLデータディレクトリを削除できます。

rm -rf /usr/local/var/postgres9.5/

(この回答は、優れたブログ投稿https://keita.blog/2016/01/09/homebrew-and-postgresql-9-5/といくつかの追加に基づいています



7

上記のように、MacでPostgresアプリを開いて[開く]をクリックしPsqlpsqlウィンドウを閉じて、ターミナルでRailsサーバーを再起動すると、エラーは発生せず、再び機能しました。

象を信頼する:http : //postgresapp.com/


6

Osx MovajeでMacを更新した後、同じ問題が発生しました。

私はこの解決策を見つけました:

まず、ターミナルで次のコマンドラインを試してください:

brew services restart postgresql

何も変わらない場合:

ps aux | grep postgres

それでも何も変化しない場合:

ls -ls | grep post

それを修正する最後のコマンドは、rootから実行してpostgresロックファイルを削除しました。

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

その後 :

brew services restart postgresql

berziiiiから: https //github.com/ga-wdi-boston/capstone-project/issues/325

それが役立つことを願っています:)

よろしく!!


5

あなたがやった後に、この問題をヒットした場合brew upgrade(f.ex新しいメジャーバージョンにアップグレードのpostgresを9.3.0する9.4.0以上)、その後、次の操作を行います。

https://github.com/Homebrew/homebrew/issues/35240からの@dmitrygusevの修正

以下の公式の[Postgresql]移行ガイドが役立ちました:

brew switch postgres 9.3.5    # presuming you already installed 9.4.1
pg_dumpall > outputfile
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
mv /usr/local/var/postgres /usr/local/var/postgres.old
brew switch postgres 9.4.1
initdb -D /usr/local/var/postgres
psql -d postgres -f outputfile

それで全部です。インポートが成功したかどうかを確認し、バックアップを削除します。

rm outputfile
rm -Rf /usr/local/var/postgres.old

ここでの問題は、postgresのメジャーバージョンアップグレードで、データベースを再作成/移行する必要があることです。そして、おそらくchownディレクトリまたは手動で呼び出しますinitdb

参照:データを失うことなくPostgreSQLをバージョン9.5からバージョン9.6にアップグレードする方法


Homebrewを使用していない場合に役立つ、他のいくつかのヒント:

PGサーバーを手動で停止する方法:

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

PGサーバーを手動で起動する方法:

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


4

中にある/usr/local/var/postgres/か、または中に あるpostgresファイルを見つけて、そのフォルダに/usr/var/postgres/あるpostmaster.pidファイルを削除します。


3

ファイルに入れてhost: localhostdatabase.yml次のコマンドを実行します。

rake db:create db:migrate  

2

Postgresアプリを使用しているMacユーザーは、アプリケーションを開くことができます(スポットライトでPostgresを検索するか、メニューバーで象のアイコンを見つけます)。そこに、「古いpostmaster.pidファイル」というメッセージの付いた赤いXが表示されることがあります。残念ながら、スポットライト検索ではこのファイルの場所は表示されません。[サーバー設定]をクリックし、表示されるダイアログボックスで[表示]ボタンをクリックして、データディレクトリを開きます。(私にとっては「var-10」でした)1つのフォルダに移動し、postmaster.pidファイルます。

Postgresアプリに戻り、[スタート]ボタンをクリックします。その赤いXは、「実行中」というメッセージの付いた緑色のチェックマークに変わります。これrails serverで、ターミナルのようにRailsコマンドを正常に実行できるはずです。

Postgres App Server Settings-Show Data Directory


これで解決しました。解決策を本当にありがとう!それはプロセスでした!
ボイド、

2

私は今夜​​この問題を抱えていて、しばらくの間取り組んでいるRailsアプリケーションに取り組んでいました。私の問題は、単に私のpostgresqlサーバーが実行されていないという事実に帰着しました

画面の上部(Macを使用)に移動し、小さな象のアイコンをクリックして、[開始]をクリックしました。

サーバーがオンになっていない私たちをオンにします。

うまくいけば、これは誰かに簡単な解決策を提供します。


1

私を助けたのは間違いなく@Chris Sladeの回答でした。

便利な場合は、残りのプロセスを強制終了するための小さなスクリプトを書きました。

kill_postgres() {
  if [[ $* -eq "" ]]; then
    echo "Usage: 'kill_postgres <db_name>' to kill remaining instances (Eg. 'kill_postgres my_app_development')"
  else
    gksudo echo "Granted sudo"
    pids="$(ps xa | grep postgres | grep $* | awk '{print $1}' | xargs)"
    if [[ $pids -eq "" ]]; then
      echo "Nothing to kill"
    else
      for pid in "${pids[@]}"
      do
        echo "Killing ${pid}"
        sudo kill $pid
        echo "Killed ${pid}"
      done
      kill_postgres $*
    fi
  fi
}

1

本番環境でも同じ問題が発生しました(開発はすべて正常に機能しました)。私の場合、DBサーバーがアプリと同じマシン上にないため、最終的には次のように書くだけで機能します。

bundle exec rake db:migrate RAILS_ENV=production

サーバーを再起動すると、すべてが機能しました。


1

私はこれが遅いことを知っていますが、誰かを助けるかもしれません。私は同じ問題を抱えていました。私はpostgres 9.1と9.5の2つのバージョンがあることを知りました。9.1と9.5をアンインストールして、再度9.5をインストールしましたが、うまくいきました。


1

コンピュータを再起動して、Postgresアプリを起動するのを忘れた可能性があります。


1

私も同じ問題を抱えていました。でPostgreSQLログファイルの最後の行を確認します/var/log/postgresql。ファイル/etc/postgresql/9.5/main/postgresql.confに認識されない構成パラメーターがありました。のエラー行にコメントするとpostgresql.conf、問題が解決しました。


1

私の問題はapplication.ymlファイルにありました。url上のデータベースherokuはポート5342を使用していませんでした。heroku設定を確認してくださいvar DATABASE_URL。該当するデータベースのapplication.ymlに完全に一致することを確認してください。


1

私は同じ問題を抱えていましたが、この説明で解決しました:http : //blog.55minutes.com/2013/09/postgresql-93-brew-upgrade/

重要なステップは、私の/usr/local/var/postgres/server.logの末尾を確認することでした。これにより、実際の問題が何であるかを確認できました。これは、PostgreSQLのアップグレードプロセスを完全に完了していなかったことです。


ここでも同様の状況-私にとっての鍵は、調べることでもありましたserver.log。ここに私の答えを見つけた:stackoverflow.com/questions/25970132/...
ネイサン・ウォレス

1

私はこのコマンドsudo service postgresql restart を実行するだけで、すべてが再び機能しました。




0

私はこの問題を抱えていて、提案された解決策はどれもうまくいきませんでした。たくさんググってみて、解決策を見つけました。これは私のために働いたものです。

まず、このコマンドを実行してサーバーを起動する必要があり、設定ファイルの場所を設定しているようです。

pg_ctl -D /usr/local/var/postgres start && brew services start postgresql

次に、このコマンドを実行してpostgresにアクセスしました

psql postgres

そして、postgresプロンプトで「\ du」と入力してロールを一覧表示します

postgres=# \du

postgresロールが見つからなかったので、このコマンドで作成する必要がありました

CREATE ROLE POSTGRES WITH SUPERUSER CREATEDB CREATEUSER CREATEROLE REPLICATION BYPASSRLS ;

これで問題が解決しました。これが他の人の役に立つことを願っています。


0

postmaster.pidデータの破損を招く可能性があるため、ファイルを削除する必要はありません。

オプション?単にkillプロセス(使用しないでくださいkill -9ください。通常のkillでです)。

次に、postgresサーバーを再起動すれば、準備完了です。

これを実現する手順は次のとおりです。

  1. postmaster.pidファイルを見つけて開きます(私のものはMac Sierraにあります)

    vi ~/Library/Application\ Support/Postgres/var-10/postmaster.pid

  2. PIDをコピーします-これはpostmaster.pidファイルの最初の行の番号です

  3. kill PIDたとえば、PIDが381の場合、プロセスを強制終了しますkill 381
  4. Postresを再起動します。brewを使用している場合は、再起動しますbrew services start postgresql。または、postgresappを使用している場合は、startボタンをクリックするだけです

0

Homebrewパッケージマネージャには、自動的に起動するlaunchctl plistsが含まれています。詳細については、を実行してくださいbrew info postgres

手動で開始:

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

手動で停止します。

pg_ctl -D /usr/local/var/postgres stop

自動的に開始:

「今すぐpostgresqlを起動してログイン時に再起動するには:」

brew services start postgresql

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