一応環境
Mac OS 10.12.6
Homebrew 1.3.2
MongDB 3.4.7
みなさん、たまにlsof -i
とかで動きっぱなしのプロセスとかないかなーって調べたりしますよね?
そしてなんとなくこれ無駄なんじゃないか?kill
してダメでも再起動とかでどうにかなんだろとか思ってちょっとkill
しちゃうことありますよね?(ない人には多分関係のない記事です)
私の場合、mysqlとmongodbがLISTENしてまして、mysqlは昔にちょっとだけ使っただけだったのでとりあえずkillして問題なし。そして、mongodbも今は起動してないのになんでずっとLISTENしてんだろう?別のmongodb動いてるのかな?とかよくわかってないくせに思い込んでkill
してしまいました。
その結果...
ryusaka-MBA:~$ mongo
MongoDB shell version: 3.0.7
connecting to: test
2016-02-13T02:10:30.013+0900 W NETWORK Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused
2016-02-13T02:10:30.015+0900 E QUERY Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed
at connect (src/mongo/shell/mongo.js:179:14)
at (connect):1:6 at src/mongo/shell/mongo.js:179
exception: connect failed
こんなエラーが・・・調べてみるとmongod --repair
をしてみろとかmongod.lock
を消してみろとか記事が出て来るんですが、どれも解決はせず。どうやら自動で起動できていたものが自分でsudo mongod --dbpath=/usr/local/var/mongodb
と打たないと起動しなくなっていました。
どうやらHomebrewで自動起動ができる(おそらくmongodbを過去にHomebrewでインストールした時に設定していたと考えられる)とわかりました。
brew services start mongodb
これで大丈夫と思い
ryusaka-MBA:~$ mongo
......同じエラーが泣
ここから堂々巡りのどハマりをして半日後・・・
sudo mongod --dbpath=/usr/local/var/mongodb
ってsudoじゃん...
もしかしたら・・・
sudo brew services start mongodb
・・・動いた!!
というクソみたいな結末でしたとさ。お恥ずかしい話です。
どうやらsudo
をつけるかつけないかで追加先が異なるようです。
sudo
無しでLaunchAgent(ログイン時にユーザー権限で起動)、
sudo
ありでLaunchDaemon(起動時にlaunchedで起動)に追加されます。