久しぶりにPostgresqlを使おうとしてエラーでた話

こんにちは。
実は、 book.impress.co.jp

こんな情報が流れてきました。 それで、これはチャンスだ!と思って、速攻Go言語の本買いました。 サンプルコードを動かすために postgresqlを使うといこうことで久々に動かすかぁ、と思って

$ psql -l
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

おや?動かない。

サーバー起動してないんだろうなぁと思いつつも、以前Macフォーマットしてるので、 フォーマットしてからPostgreSQL入れてなかったかなぁ、と思いpostgres —versionを実行。

$ postgres --version
postgres (PostgreSQL) 10.0

いや、入ってるな。 じゃあやっぱりサーバー起動してない。

ググりました。
【再起動して解決】connections on Unix domain socket “/tmp/.s.PGSQL.5432”?への対処 | ベランダゴーヤ研究所

これ近いんじゃない?と思ってさーっと読みました。
結論から言うと、brew servicesは使ったことがなかったので、これは違うな、と感じて、環境構築の段階の記事を見ました。

サーバー起動してみる

Qiitaの記事のコマンドを実行。

pg_ctl -D /usr/local/pgsql/data -l /var/log/postgres start
pg_ctl: directory "/usr/local/pgsql/data" does not exist

うん、動かない。
ディレクトリ内って言ってるし、これじゃないことはわかった。

PGDATA設定されてるので、pg_ctl -l /usr/local/var/postgres/server.logこれかなぁ、と思って実行。

$ pg_ctl -l /usr/local/var/postgres/server.log
pg_ctl: no operation specified
Try "pg_ctl --help" for more information.

これも違う…
言われた通りhelp確認してみた。 読みながら、「あれ、そもそもstartいるんじゃね?」と言うことに気づいた。

pg_ctl -l /usr/local/var/postgres/server.log start
waiting for server to start.... done
server started

startくっつけたら動いた。

確認のために、psql -lを実行。

   Name    |   Owner    | Encoding |   Collate   |    Ctype    | Access privileg
-----------+------------+----------+-------------+-------------+----------------
 postgres  | hogehoge   | UTF8     | ja_JP.UTF-8 | ja_JP.UTF-8 |

うごいた!!歓喜!(※hogehogeは変更してあります)

こうして、やっとGoのサンプルコードを動かす準備はできました。
ふぅ…。笑