2016-05-20 28 views
2

私のMacはロックされていましたので、ハードシャットダウンする必要がありました(電源を切ってから電源を入れ直してください)。私は(ちょうどクラッシュする前に細かい動作していた)私の地元のレールのアプリを起動しようとすると、今私は、次のアクションコントローラの例外を取得:ハード再起動後、Postgresql(Rails)に接続できません

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/pgsql_socket/.s.PGSQL.5432"? 

私は自分のコンピュータがクラッシュしたときに月ほど前に同様の問題があったと私最終的に解決策が見つかりました。しかし、私は何時間も何も研究しておらず、今日は運がありませんでした。

私はかなり価値があるのですが、foreman startでサーバーを起動し、Redisを使用しています。しかし、正直言って、私はそれらが何をしているのか正確には分かりません。

ありがとうございました。

+0

コマンドラインからpostgresにログインできますか?コマンドラインでpsqlと入力して、データベースが実行中かどうかを確認してください。フォアマン開始はwebrickを開始し、redisはメモリ内のすべてを保持する驚異的な高速キー/バリューストアです。 PG :: Connectionは、あなたのpostgresデータベースがオフラインであること、またはcredentials/database.ymlが間違っていることを伝えています。 – bkunzi01

+1

'postmaster.pid'ファイルはどこかにありますか?もしそうなら、そのファイルを削除し、PostgreSQLを通常通り起動してください。このファイルが存在すると、PostgreSQLにはすでに実行中であるため、PostgreSQLが正常にシャットダウンされない場合、 'postmaster.pid'ファイルが残ってしまう可能性があります。 –

+0

@ bkunzi01 'psql'は' -bash:psql:command not found'を返します。 – chamster

答えて

1

これは通常私にとっては役に立ちます。

$ launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist 
$ pg_ctl restart -D /usr/local/var/postgres 
$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist 
+0

'launchctl unload -w〜/ Library/LaunchAgents/homebrew.mxcl.postgresql.plist'は' /Users/robert/Library/LaunchAgents/homebrew.mxcl.postgresql.plist:No such file or directory'を生成します。ファインダーを見ると、そこにファイルがあります。しかし、それはエイリアス(矢印付きの汎用ファイルアイコン)のように見えます。ダブルクリックすると、「homebrew.mxcl.postgresql.plist」の元の項目は見つけられた。" – chamster

+0

postgresqlはどのようにインストールしましたか? –

+0

まあ、私は完全には分かりません。私はそれがレールバンドルの一部であると思った。私は物事に自作を使っていることを知っています。しかし私はちょうど別の提案ごとにpostgres.appをダウンロードしてインストールしました。私はそれを起動し、 'foreman start'を実行するときにも同じPG :: ConnectionBadエラーを取得します。私がpg_ctlを実行するとFWIWは '-bash:pg_ctl:command not found'を取得します。 – chamster

1

は最終的に私は、PostgreSQLをアンインストールし、再インストールしてしまった:

brew remove postgresql brew install postgresql

はたぶん少ない抜本的な解決策がありましたが、それはかなり迅速かつ無痛だったと私はビジネスに戻っています。

私は開発環境で作業していて、データを失い、データベースを再シードする準備ができましたが、すべてのデータはまだそこにありました。