1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PostgreSQL + Homebrew のエラー?

Posted at

エラー解決の記録です。

エラー内容

PostgreSQLをインストールして初めてデータベースに接続するときに、

% brew services start postgresql
  ==> Successfully started `postgresql`(label:homebrew.mxcl.postgresql)
% brew services list           
  Name       Status       User File
  postgresql error  19968 <usename> ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
% psql postgresql
  psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory
  Is the server running locally and accepting connections on that socket?

という状況になりました。

postgresqlがSuccessfully startedとは書いてあるけれども、実際のStatusはerrorで、psqlコマンドで接続しようとするとコネクションエラーになっています。

Homebrewのコマンドを使わずに、

% postgres -D /usr/local/var/postgres/

でPostgreSQLを起動すると、別アプリのターミナルからpsqlコマンドで接続することはできたので、Homebrewのコマンドで起きる問題だと考えました。

解決方法

  • /usr/local/var/log/postgres.log への [username] のアクセス権限を「読み出しのみ」から「読み/書き」に変更する 

アクセス権限を変えた直後にbrew services listを実行すると

% brew services list
  Name       Status  User File
  postgresql started <username> ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

このようにStatusがstartedに変わり、psqlコマンドでの接続もできるようになりました。

考えられる原因

実は、この記事の問題として取り上げているエラーが出る前に、下記のような別の種類のエラーが出ていました。

% brew services start postgresql
  Error: Permission denied @ rb_sysopen - /Users/<username>/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

これを下記の操作で解決したので、

% sudo chown <username> /Users/<username>/Library/LaunchAgents/

私はこの後もsudoを付けずに([username]として)brew services start postgresqlを実行していくことになります。

その後に、この記事冒頭の状態に移っています。

また、brew services start postgresqlで使う↓このファイルは、

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

↓このファイルへアクセスしているようです。

/usr/local/var/log/postgres.log 

合わせて考えると、原因はログファイルへの書き込み権限を持っていないユーザーでPostgreSQLを起動しようとしたことではないでしょうか。

ログファイルへの[username]のアクセス権限を「読み出しのみ」に戻すとエラーを再現できるので、この推測は正しいのではないかと思っています。

教訓

あるファイルのオーナー権限やアクセス権限を変えて何かを解決したときは、そこからつながるファイルへのアクセス権限も変えなければならない(ときもある)。

エラー解決のために参考にしたWebサイトは下記です。

Homebrewでインストールしたpostgresqlが起動しないのを調べた
Permission denied error when trying to run postgresql on Homebrew

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?