LoginSignup
0
0

MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017 対応

Last updated at Posted at 2023-10-06

mongodb を M1 Macbook Pro で brew upgrade したら、それまで動いていたのが動かなくなった件。

対応後にとりあえず自分のメモ用に書いているので、きちんとまとまっていませんが、ヒントにはなると思います。

やったこと

元々 mongodb@6 が入っていた Mac で、brew upgrade したら mongodb@7 になったが、mongosh を起動しようとすると、

MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017

になる。このメッセージ自体は、socketへの接続が出来ないというエラー。
要は、mongod が動いていないということ。

brew services では、正常に動いたように見えるが実際にはエラーで動いていない。log を見ると exit しているので分かる。

この動いていない原因は多数あるらしいので、ネットで調べてもかなり昔から沢山出てくるので、なかなかヒットしない。

私のケースでは、どうも、6.0以前と7.0以降はコンパチビリティがないのでエラーになるっぽい。(と書いてあるサイトを見たのだが、後から探すと見つからない、、。)
ところが、 brew uninstall とか brew reinstall ではデータ(設定ファイルも?)が消えないので、再インストールしても状態が変わらない。データを残す方法もあるっぽいけど、自分は不要なのでとりあえず手で全部消す。
(もしかしたら、設定ファイルだけの問題かもしれないけど未確認。)

また、色々操作していると、brew services startを root で起動しろというメッセージが出てくるが、これをやるといくつかのファイルのownerがrootになってしまう。典型的なのは、socket(/tmp/mongoなんちゃら)がrootになってしまう。brew services で自動起動に設定すると、ownerは自分自身なので、途中で使うファイルの owner が root だと色々失敗する。(次やる時は、rootでの実行をしないようにすれば良いと思う。もう1台あるのでそれで試す。)

mongod を root で起動すると動くけど、services での起動では失敗するようになったら、ログを見ながらファイルのowner を変更するとそのうち動くようになる。
(もしかしたら、こっちだけの問題かもしれない。)

別マシンで確認

こっちも brew upgrade でエラーになった。機種は M1 Macbook Air。
以下の手順で動いた

  • 自動起動をやめる
  • brew uninstall
  • データ(/opt/homebrew/var/mongodb)を全部消す
  • 念の為、socketも消す。再起動
  • brew install, brew services start
  • OK

mongodb の公式ページを見ると、6.0から7.0へのupgradeの方法が書いてあるのを見つけたので、この通りやれば良いのかもしれないけど、すでに 7.0 になってエラーで焦っている状態だともう遅いかも。

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