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

MongoDB compassで"getaddrinfo ENOTFOUND mongo"と出て接続できないとき

Last updated at Posted at 2024-09-29

したかったこと

Docker上でMongoDBを立ち上げて、ホストマシン上のMongoDB compassからアクセスしたかった。

症状

mongodb://localhost:27017/

にcompassから接続を試みたが、

getaddrinfo ENOTFOUND mongo

というエラーが発生して接続できない。

一方で、mongoshを使ってターミナルからアクセスするとアクセス可能であった

% mongosh "mongodb://localhost:27017"
Current Mongosh Log ID:	66f8d4b7c208d9e36d035dda
Connecting to:		mongodb://localhost:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.3.1
Using MongoDB:		6.0.17
Using Mongosh:		2.3.1

hogehoge [direct: primary] test>

解決

Advanced Connection OptionsのDirect Connectionにチェックを入れるだけで解決した(チェックを入れると、URIに?directConnection=trueが追加される)。
よく見たらmongoshでの接続ではこの設定が有効になっているので接続できたのだと思われる。
スクリーンショット 2024-09-29 16.18.50.png

おわりに

インターネット上で情報を探しても、特に細かい設定無しで簡単に接続できる!という記事ばかりで接続できない場合に関する情報が少なく、解決に非常に時間がかかってしまった。特にmongoshからは接続できるのが謎で、探しても見つからない症状だったが、偶然この方法に言及している方がいて助かった。
ただ、今になって思えばmongoshのConnecting to:以下を真似ればすぐに解決したのだった。

一方で、なぜ今回このオプションが必要となったのかは不明で、かつこの設定によって具体的に何が変わって解決したかも不明なので、有識者の方教えてください。

参考リンク

https://stackoverflow.com/questions/73836909/getting-getaddrinfo-enotfound-mongo-when-trying-to-connect-to-mongodb
https://github.com/mongodb/mongodb-kubernetes-operator/issues/946

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?