2
2

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 3 years have passed since last update.

db接続のエラー - PG::ConnectionBad: could not connect to server: No such file or directory -

Posted at

#1, 環境
macOS catalina 10.15.7
Ruby 2.6.5p114
Rails 6.0.3.7

#2, はじめに
エラーにハマって自身でしらべ、解消できたのですが今後も起きた時のためにも残しておきます。
また、同じエラーで困った人の助けになれば。

#3, エラー内容
deviseの導入を行なっており、rails db:migrateを実行すると、

kanta@fukazawakantanoMacBook-Pro insta-app-daytra % rails db:migrate
rails aborted!
PG::ConnectionBad: 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"?

DBの接続に関してのエラーっぽいですね。

#4, 試したこと
エラー文をDeepLにて翻訳。

PG::ConnectionBad: サーバーに接続できませんでした。No such file or directory
サーバーはローカルで動作していて、以下を受け付けています。
Unixドメインソケット「/tmp/.s.PGSQL.5432」で接続を受け付けていますか?

なんとなくの意味は分かったが根本的な問題は分からず。
そこでエラー文の

Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

をググると、以下の記事がヒット
https://qiita.com/knxrvb/items/72d88fe5364561214e52

ターミナルでそこにあるコードを実行しDBを起動しようとすると

postgres -D /usr/local/var/postgres

2021-05-11 15:22:39.356 JST [31540] FATAL:  database files are incompatible with server
2021-05-11 15:22:39.356 JST [31540] DETAIL:  The data directory was initialized by PostgreSQL version 12, which is not compatible with this version 13.2.
 

とログが表示。
翻訳すると、

データベースファイルがサーバーと互換性がない
データディレクトリはPostgreSQLバージョン12で初期化されており、このバージョン13.2とは互換性がありません。

と、postgresのバージョンが古いみたい。
記事にもあるアップグレードさせるコードを実行。

brew postgresql-upgrade-database

いろいろコードが走り、

==> brew install postgresql@12
==> Downloading https://ghcr.io/v2/homebrew/core/postgresql/12/manifests/12.6_2
######################################################################## 100.0%
     ・
   ・
   ・

一件落着かに思われたが、、、

Error: Upgrading postgresql data from 12 to 13 failed!
==> Removing empty postgresql initdb database...
==> Moving postgresql data back from /usr/local/var/postgres.old to /usr/local/var/postgres...
Error: Failure while executing; `/usr/local/opt/postgresql/bin/pg_upgrade -r -b /usr/local/Cellar/postgresql@12/12.6_2/bin -B /usr/local/opt/postgresql/bin -d /usr/local/var/postgres.old -D /usr/local/var/postgres -j 4` exited with 1.

アップグレードできず。。。

そのままエラー文の

pgrading postgresql data from 12 to 13 failed!

をググると
https://twin-t.com/postgressql%E3%82%92%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B%E9%9A%9B%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC/
がヒット。

どうやらPostgresSQLを起動したままアップデートを行ったことがまずかったみたい。

記事に従って、PostgresSQLを停止させ、

brew services stop postgresql
brew postgresql-upgrade-database
  .
  . 
  .
==> Upgraded postgresql data from 12 to 13!
==> Your postgresql 12 data remains at /usr/local/var/postgres.old

無事アップグレード完了!!
試しにDBを起動させると、

brew services start postgresql
==> Successfully started `postgresql` (label: homebrew.mxcl.postgresql)

成功ですね!!

rails db:migrateも実行できました!!!

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?