読者です 読者をやめる 読者になる 読者になる

コンパイラかく語りき

文系新卒プログラマーのメモ

postgresで、Error: connect ECONNREFUSED

PostgreSQL Homebrew

NodeのWebフレームワークを触っていたら、db:createの時点で以下のエラーが。

f:id:chuck0523:20160214232523p:plain

 

おそらくpostgresが起動していないっぽい?

Error: connect ECONNREFUSEDでググったところ、「mysqlが起動していませんでした」とか「MongoDBが起動していませんでした」みたいな書き込みを多数発見。

 

というわけで、今回のゴールはPostgresを起動させること。

 

postgresのディレクトリ確認

whichコマンドで確認。

$ which postgres

 

すると、/usr/local/bin/postgres だと発覚。

 

起動の確認

pg_ctlというコマンドでpostgresに関するアレやコレやができるらしい。

pg_ctlに先ほどのディレクトリを与えて、statusを確認します。

 

 $ pg_ctl -D /usr/local/bin/postgres status

 

pg_ctl: could not open PID file "/usr/local/bin/postgres/postmaster.pid": Not a directory

 

あれ??

 

(ここで1時間くらいハマる)

 

postgresのディレクトリ間違ってた???

なんかね、postgresってbrewでインストールした気がするんですよね。

だから、

 

$ brew info postgres

をして、情報を出してみたんですよ。

そしたら、「postgresなら/usr/local/var/にいるぜ」とか言われて。

 

f:id:chuck0523:20160215000032p:plain

 

postgresを起動したいなら、

$ postgres -D /usr/local/var/postgres しなさいと。

 

あれ???whichで確認したディレクトリと違くない???

ということは、間違ったpostgresを参照しちゃってる状態??起動するしない以前の問題じゃない???

ってか間違ったpostgresってなんだよ!いつの間にダブったんだよ!(キレそう)

 

 

なにはともあれ起動してみる

なにはともあれ、起動コマンドを打ってみます。

$ postgres -D /usr/local/var/postgres

 

その結果、

f:id:chuck0523:20160215001903p:plain

起動したっぽいです。

 

statusもこのとおり。

f:id:chuck0523:20160215002020p:plain