Node.jsでAPIサーバーを作成したかったので、初めてMongoDBを使ってみることにしました。
MongoDBの環境構築を進めていく中でエラーが発生したので、その内容と対処法に関してまとめます。
環境
macOS Catalina バージョン 10.15.7
背景
MongoDBは下記のような手順でMacOSに構築をしました。
$ brew tap mongodb/brew
$ brew install mongodb-community@5.0
$ brew services start mongodb-community@5.0
==> Successfully started `mongodb-community` (label: homebrew.mxcl.mongodb-community)
「Successfully」とありますが、$ brew services list で確認をしてみると、、、
Name Status User Plist
mongodb-community error user /usr/local/opt/mongodb-community/homebrew.mxcl.mongodb-community.plist
mongodb-community@4.0 stopped
Statusがerrorになっていますね。
この状態で $mongo を実行してもうまくいきません。
失敗原因のログを見てみます。
$ cat /usr/local/var/log/mongodb/mongo.log
下記のようなログが出てきました。
{"t":{"$date":"2021-09-19T20:06:46.181+09:00"},"s":"E", "c":"NETWORK", "id":23024, "ctx":"initandlisten","msg":"Failed to unlink socket file","attr":{"path":"/tmp/mongodb-27017.sock","error":"Permission denied"}}
/tmp/mongodb-27017.sockのPermissionで何か怒られているようです。
解決策
/tmp/mongodb-27017.sockを削除すると解決しました。
$ sudo rm /tmp/mongodb-27017.sock
この現象は、macOSがCatalinaの場合に発生するようですね。
参考:Installation in macOS Catalina problem - Ops and Admin - MongoDB Developer Community Forums
$ brew services listで複数のmongodb-communityがあるので、全てuninstallして、改めて mongodb-community@5.0 を入れ直しました。
参考