🛵

【Postgres】Postgresのサーバーにアクセスする。(エラー解決)

2021/10/03に公開

環境

% brew info postgresql
postgresql: stable 13.4 (bottled), HEAD

エラー内容

下記のようにPostgreSQL(psql)が再起動したと記載されるが、

% brew services restart postgres              
Stopping `postgresql`... (might take a while)
==> Successfully stopped `postgresql` (label: homebrew.mxcl.postgresql)
==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql)

実際に、listでpsqlを確認すると、statusがエラーと表示される。

% brew services list                          
Name       Status  User Plist
mysql      stopped      
php        stopped      
postgresql error   mac  /usr/local/opt/postgresql/homebrew.mxcl.postgresql.plist

エラー解決まで、気にしていたこと

こちらのエラーが出ていたので、ソケット関係で問題が生じていたのかなと思ったのですが、
そもそもpsqlが起動できていないことが原因だと気づきました。

% psql -l
psql: error: 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"?

(参考)

macos+homebrew+postgres で接続エラー「PG::ConnectionBad: 〜"/tmp/.s.PGSQL.5432"?」を解決

エラー解決

下記のように直接起動を試したところ、途中で変更してしまった権限でエラーが起きていることに気づきました。

info の最後にあったフォアグラウンドでの起動を試してエラーメッセージを確認することにしました。

%  pg_ctl -D /usr/local/var/postgres start
waiting for server to start....2021-10-03 17:35:46.746 JST [74670] FATAL:  data directory "/usr/local/var/postgres" has invalid permissions
2021-10-03 17:35:46.746 JST [74670] DETAIL:  Permissions should be u=rwx (0700) or u=rwx,g=rx (0750).
 stopped waiting
pg_ctl: could not start server
Examine the log output.

権限を直し、起動したところ成功しました。

% sudo chmod 700 /usr/local/var/postgres
% brew services restart postgres
% brew services list                                      
Name       Status  User Plist
mysql      stopped      
php        stopped      
postgresql started mac  /Users/mac/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

参考文献

今回のエラーは下記のサイトを確認している際に気づきました。
ありがとうございます。

Homebrewでインストールしたpostgresqlが起動しないのを調べた

Discussion